src/newgrf.cpp
branchNewGRF_ports
changeset 6734 6e4db2fda167
parent 6732 ca1b466db422
child 6737 2b971fcc9a08
equal deleted inserted replaced
6733:240d846d5149 6734:6e4db2fda167
  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;