| 103 | } /* FlcReadFile */ |
| 104 | |
| 105 | int FlcCheckHeader(const char *filename) |
| 106 | { |
| 107 | if((flc.file=fopen(filename, "rb"))==NULL) { |
| 108 | Log(LOG_ERROR) << "Could not open flx file: " << filename; |
| 109 | return -1; |
| 110 | } |
| 111 | |
| 112 | FlcReadFile(128); |
| 113 | |
| 114 | ReadU32(&flc.HeaderSize, flc.pMembuf); |
| 115 | ReadU16(&flc.HeaderCheck, flc.pMembuf+4); |
| 116 | ReadU16(&flc.HeaderFrames, flc.pMembuf+6); |
| 117 | ReadU16(&flc.HeaderWidth, flc.pMembuf+8); |
| 118 | ReadU16(&flc.HeaderHeight, flc.pMembuf+10); |
| 119 | ReadU16(&flc.HeaderDepth, flc.pMembuf+12); |
| 120 | ReadU16(&flc.HeaderSpeed, flc.pMembuf+16); |
| 121 | |
| 122 | #ifdef DEBUG |
| 123 | printf("flc.HeaderSize: %d\n", flc.HeaderSize); |
| 124 | printf("flc.HeaderCheck: %d\n", flc.HeaderCheck); |
| 125 | printf("flc.HeaderFrames: %d\n", flc.HeaderFrames); |
| 126 | printf("flc.HeaderWidth: %d\n", flc.HeaderWidth); |
| 127 | printf("flc.HeaderHeight: %d\n", flc.HeaderHeight); |
| 128 | printf("flc.HeaderDepth: %d\n", flc.HeaderDepth); |
| 129 | printf("flc.HeaderSpeed: %lf\n", flc.HeaderSpeed); |
| 130 | #endif |
| 131 | |
| 132 | |
| 133 | if((flc.HeaderCheck==SDL_SwapLE16(0x0AF12)) || (flc.HeaderCheck==SDL_SwapLE16(0x0AF11))) { |
| 134 | flc.screen_w=flc.HeaderWidth; |
| 135 | flc.screen_h=flc.HeaderHeight; |
| 136 | Log(LOG_INFO) << "Playing flx, " << flc.screen_w << "x" << flc.screen_h << ", " << flc.HeaderFrames << " frames"; |
| 137 | flc.screen_depth=8; |
| 138 | if(flc.HeaderCheck == SDL_SwapLE16(0x0AF11)){ |
| 139 | flc.HeaderSpeed*=1000.0/70.0; |
| 140 | } |
| 141 | return(0); |
| 142 | } |
| 143 | return(1); |
| 144 | |
| 145 | } /* FlcCheckHeader */ |
| 146 | |
| 147 | int FlcCheckFrame() |
| 148 | { |
no test coverage detected