lib/cel_decode.js
function _getCelFrameDecoder(celName, frameData, frameNum) {
    var frameSize = frameData.length;

    switch (celName) {
    case 'l1': case 'l2': case 'l3': case 'l4': case 'town':
        // Some regular (type 1) CEL images just happen to have a frame size of
		// exactly 0x220, 0x320 or 0x400. Therefore the isType* functions are
		// required to figure out the appropriate decoding function.
        switch (frameSize) {
        case 0x400:
            if (isType0(celName, frameNum)) {
                return DecodeFrameType0;
            }
            break;
        case 0x220:
            if (isType2or4(frameData)) {
                return DecodeFrameType2;
            } else if (isType3or5(frameData)) {
                return DecodeFrameType3;
            }
            break;
        case 0x320:
            if (isType2or4(frameData)) {
                return DecodeFrameType4;
            } else if (isType3or5(frameData)) {
                return DecodeFrameType5;
            }
        }
    }

    return DecodeFrameType1;
}
function _getCelFrameDecoder(celName, frameData, frameNum) {
    var frameSize = frameData.length;

    switch (celName) {
    case 'l1': case 'l2': case 'l3': case 'l4': case 'town':
        // Some regular (type 1) CEL images just happen to have a frame size of
		// exactly 0x220, 0x320 or 0x400. Therefore the isType* functions are
		// required to figure out the appropriate decoding function.
        switch (frameSize) {
        case 0x400:
            if (isType0(celName, frameNum)) {
                return DecodeFrameType0;
            }
            break;
        case 0x220:
            if (isType2or4(frameData)) {
                return DecodeFrameType2;
            } else if (isType3or5(frameData)) {
                return DecodeFrameType3;
            }
            break;
        case 0x320:
            if (isType2or4(frameData)) {
                return DecodeFrameType4;
            } else if (isType3or5(frameData)) {
                return DecodeFrameType5;
            }
        }
    }

    return DecodeFrameType1;
}
function _getCelFrameDecoder ( celName , frameData , frameNum ) { var frameSize = frameData . length ; switch ( celName ) { case 'l1' : case 'l2' : case 'l3' : case 'l4' : case 'town' : // Some regular (type 1) CEL images just happen to have a frame size of // exactly 0x220, 0x320 or 0x400. Therefore the isType* functions are // required to figure out the appropriate decoding function. switch ( frameSize ) { case 0x400 : if ( isType0 ( celName , frameNum ) ) { return DecodeFrameType0 ; } break ; case 0x220 : if ( isType2or4 ( frameData ) ) { return DecodeFrameType2 ; } else if ( isType3or5 ( frameData ) ) { return DecodeFrameType3 ; } break ; case 0x320 : if ( isType2or4 ( frameData ) ) { return DecodeFrameType4 ; } else if ( isType3or5 ( frameData ) ) { return DecodeFrameType5 ; } } } return DecodeFrameType1 ; }
Gets the appropriate frame decoder for the particular frame.
Gets the appropriate frame decoder for the particular frame .