402 if (!HASBIT(e->player_avail, player)) return false; |
402 if (!HASBIT(e->player_avail, player)) return false; |
403 |
403 |
404 return true; |
404 return true; |
405 } |
405 } |
406 |
406 |
|
407 /** Get the default cargo type for a certain engine type |
|
408 * @param engine The ID to get the cargo for |
|
409 * @return The cargo type. CT_INVALID means no cargo capacity |
|
410 */ |
|
411 CargoID GetEngineCargoType(EngineID engine) |
|
412 { |
|
413 assert(IsEngineIndex(engine)); |
|
414 |
|
415 switch (GetEngine(engine)->type) { |
|
416 case VEH_TRAIN: |
|
417 if (RailVehInfo(engine)->capacity == 0) return CT_INVALID; |
|
418 return RailVehInfo(engine)->cargo_type; |
|
419 |
|
420 case VEH_ROAD: |
|
421 if (RoadVehInfo(engine)->capacity == 0) return CT_INVALID; |
|
422 return RoadVehInfo(engine)->cargo_type; |
|
423 |
|
424 case VEH_SHIP: |
|
425 if (ShipVehInfo(engine)->capacity == 0) return CT_INVALID; |
|
426 return ShipVehInfo(engine)->cargo_type; |
|
427 |
|
428 case VEH_AIRCRAFT: |
|
429 /* all aircraft starts as passenger planes with cargo capacity */ |
|
430 return CT_PASSENGERS; |
|
431 |
|
432 default: NOT_REACHED(); return CT_INVALID; |
|
433 } |
|
434 } |
|
435 |
407 /************************************************************************ |
436 /************************************************************************ |
408 * Engine Replacement stuff |
437 * Engine Replacement stuff |
409 ************************************************************************/ |
438 ************************************************************************/ |
410 |
439 |
411 static void EngineRenewPoolNewBlock(uint start_item); |
440 static void EngineRenewPoolNewBlock(uint start_item); |