equal
deleted
inserted
replaced
2073 if (*fsmportspec == NULL) *fsmportspec = CallocT<FSMportsSpec>(1); |
2073 if (*fsmportspec == NULL) *fsmportspec = CallocT<FSMportsSpec>(1); |
2074 |
2074 |
2075 /* Swap classid because we read it in BE meaning WAYP or DFLT */ |
2075 /* Swap classid because we read it in BE meaning WAYP or DFLT */ |
2076 uint32 classid = grf_load_dword(&buf); |
2076 uint32 classid = grf_load_dword(&buf); |
2077 (*fsmportspec)->sclass = AllocateFSMportsClass(BSWAP32(classid)); |
2077 (*fsmportspec)->sclass = AllocateFSMportsClass(BSWAP32(classid)); |
|
2078 |
|
2079 /* create new AirportClass for this airport */ |
|
2080 (*fsmportspec)->portFSM = new AirportFTAClass( fsmport_moving_data_dummy, |
|
2081 NULL, |
|
2082 NULL, |
|
2083 fsmport_entries_dummy, |
|
2084 AirportFTAClass::ALL, |
|
2085 fsmport_fta_dummy, |
|
2086 NULL, |
|
2087 0, |
|
2088 0, 0, |
|
2089 0, |
|
2090 0 |
|
2091 ); |
|
2092 |
2078 } break; |
2093 } break; |
2079 |
2094 |
2080 case 0x09: // Define sprite layout |
2095 case 0x09: // Define sprite layout |
2081 fsmportspec->tiles = grf_load_extended(&buf); |
2096 fsmportspec->tiles = grf_load_extended(&buf); |
2082 fsmportspec->renderdata = CallocT<DrawTileSprites>(fsmportspec->tiles); |
2097 fsmportspec->renderdata = CallocT<DrawTileSprites>(fsmportspec->tiles); |
2214 break; |
2229 break; |
2215 |
2230 |
2216 case 0x18: // @todo Animation triggers |
2231 case 0x18: // @todo Animation triggers |
2217 grf_load_word(&buf); |
2232 grf_load_word(&buf); |
2218 ret = true; |
2233 ret = true; |
|
2234 break; |
|
2235 |
|
2236 case 0x1C: // Entry points |
|
2237 //TODO: store entry points |
|
2238 grf_load_byte(&buf); |
|
2239 grf_load_byte(&buf); |
|
2240 grf_load_byte(&buf); |
|
2241 grf_load_byte(&buf); |
|
2242 ret = true; |
|
2243 break; |
|
2244 |
|
2245 case 0x1D: // Hangar locations |
|
2246 fsmportspec->portFSM->nof_depots = grf_load_byte(&buf); |
|
2247 fsmportspec->portFSM->airport_depots = MallocT<TileIndexDiffC>(fsmportspec->portFSM->nof_depots); |
|
2248 for (uint depot = 0; depot < fsmportspec->portFSM->nof_depots; depot++) |
|
2249 { |
|
2250 TileIndexDiffC depot_tile; |
|
2251 depot_tile.x = grf_load_byte(&buf); |
|
2252 depot_tile.y = grf_load_byte(&buf); |
|
2253 fsmportspec->portFSM->airport_depots[depot] = depot_tile; |
|
2254 } |
|
2255 ret = true; |
|
2256 break; |
|
2257 |
|
2258 case 0x1E: // Terminal groups |
|
2259 { |
|
2260 uint num_terms = grf_load_byte(&buf); |
|
2261 for (uint terms = 0; terms < num_terms; terms++) |
|
2262 { |
|
2263 //TODO: store terms |
|
2264 grf_load_byte(&buf); |
|
2265 } |
|
2266 ret = true; |
|
2267 } |
|
2268 break; |
|
2269 |
|
2270 case 0x1F: // Helipad groups |
|
2271 { |
|
2272 uint num_helipads = grf_load_byte(&buf); |
|
2273 for (uint helipads = 0; helipads < num_helipads; helipads++) |
|
2274 { |
|
2275 //TODO: store helipads |
|
2276 grf_load_byte(&buf); |
|
2277 } |
|
2278 ret = true; |
|
2279 } |
2219 break; |
2280 break; |
2220 |
2281 |
2221 default: |
2282 default: |
2222 ret = true; |
2283 ret = true; |
2223 break; |
2284 break; |