MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / FlcCheckHeader

Function FlcCheckHeader

src/Engine/Flc.cpp:105–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103} /* FlcReadFile */
104
105int FlcCheckHeader(const char *filename)
106{
107if((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
147int FlcCheckFrame()
148{

Callers 1

FlcInitFunction · 0.85

Calls 1

FlcReadFileFunction · 0.85

Tested by

no test coverage detected