Define the WormAirManager class which handles airports and airplanes. More...
Public Member Functions | |
constructor | WormAirManager () |
Create an instance of WormAirManager and initialize our variables. | |
function | AfterLoading () |
Do any necessary processing after a savegame has been loaded. | |
Debugging output functions | |
function | DebugListTownsUsed () |
List of towns used and stations near those towns. | |
function | DebugListTowns (towns_list) |
List all towns in the supplied list. | |
function | DebugListRoutes () |
List all routes: per route all stations and all vehicles on that route with relevant info. | |
function | DebugListRoute (route) |
List all route info in the supplied list. | |
function | DebugListRouteInfo () |
List all our air routes. | |
function | DebugListVehiclesSentToDepot () |
List all vehicles that were sent to depot to be sold. | |
function | DebugVehicleInfo (veh) |
Show info about the specified vehicle. | |
Airport handling functions | |
function | RemoveAirport (tile) |
Remove airport at specified tile. | |
function | GetOptimalAvailableAirportType () |
Get the optimal type of airport that is available. | |
function | GetAiportTileOtherEndOfRoute (town_id, station_tile) |
Get tile of airport at the other end of the route. | |
function | UpdateAirportTileInfo (town_idx, station_id, old_tile) |
Update the airport station tile info in our lists after upgrading airport. | |
function | ReplaceAirportTileInfo (old_town_idx, old_tile, new_tile, other_end_of_route_tile) |
Replace the airport town and station tile info in our lists and update orders. | |
function | IsWithinNoiseLimit (tile, airport_type) |
Determines whether an airport at a given tile is allowed by the town authorities because of the noise level. | |
function | CheckForAirportsNeedingToBeUpgraded () |
Checks all airports to see if they should be upgraded. | |
function | BuildAirportRoute () |
Build an airport route. | |
function | FindSuitableAirportSpot (airport_type, center_tile) |
Find a suitable spot for an airport, walking all towns hoping to find one. | |
function | SellAirports (airport_1_tile, airport_2_tile) |
Sells the airports at tile_1 and tile_2. | |
Order handling | |
function | IsTownFirstOrder (town_id) |
Check whether the airport at a certain town is used as the first order of a route. | |
function | ReplaceOrders (veh, is_first_order, breakdowns, station_tile) |
Replace orders of a vehicle, either the first station or last station is replaced. | |
function | InsertGotoStationOrder (veh, order_pos, station_tile) |
Insert go to station order for airport at station_tile. | |
function | InsertMaintenanceOrder (veh, order_pos, station_tile) |
Insert Maintenance order for airport at station_tile. | |
function | ReplaceGotoStationOrder (veh, order_pos, station_tile) |
Replace go to station order for airport at station_tile. | |
Aircraft handling | |
function | GetMaximumDistance (engine) |
Get the maximum distance this aircraft can safely fly without landing. | |
function | BuildAircraft (tile_1, tile_2, start_tile) |
Build an aircraft with orders from tile_1 to tile_2. | |
function | SendAllVehiclesOfStationToDepot (station_id, sell_reason) |
Send all vehicles belonging to a station to depot for selling. | |
function | SendToDepotForSelling (vehicle, sell_reason) |
Send a vehicle to depot to be sold when it arrives. | |
function | RemoveVehicleFromLists (vehicle) |
Remove a vehicle from our route lists and to depot list. | |
function | SellVehicleInDepot (vehicle) |
Sell the vehicle provided it's in depot. | |
function | SellVehiclesInDepot () |
Sell all vehicles in depot that are marked to be sold. | |
Task related functions | |
function | ManageVehicleRenewal () |
Check all vehicles for being old or needing upgrading to a newer type. | |
function | CheckAirportsWithoutVehicles () |
Check for airports that don't have any vehicles anymore and delete them. | |
function | UpdateBlacklist () |
Remove towns from the blacklist where blacklisting has expired. | |
function | ManageAirRoutes () |
Manage air routes: | |
function | HandleEvents () |
Callback that handles events. | |
function | EvaluateAircraft (clear_warning_shown_flag) |
Task that evaluates all available aircraft for how suited they are for our purposes. | |
function | BuildHQ () |
Build the company headquarters if there isn't one yet. | |
function | BuildStatues () |
Build statues in towns where we have a station as long as we have a reasonable amount of money. | |
General functions | |
function | GetTownFromStationTile (st_tile) |
Get Town id in our towns_used list based on tile of station built near it. | |
function | IsValidStationFromTile (st_tile) |
Determine if a station is valid based on the station tile. | |
function | IsValidFirstStation (veh) |
Determine if the first station of the route of a vehicle is valid. | |
function | IsValidLastStation (veh) |
Determine if the last station of the route of a vehicle is valid. | |
Valuator functions | |
function | GetCostFactor (engine, costfactor_list) |
Valuator function to get the cost factor of an aircraft. |
Public Attributes | |
towns_used = null | |
town id, airport station tile | |
route_1 = null | |
vehicle id, station_tile of first station in an order | |
route_2 = null | |
vehicle id, station_tile of last station in an order | |
distance_of_route = {} | |
vehicle id, distance between first/last order stations | |
vehicle_to_depot = {} | |
vehicle id, boolean always true currently | |
engine_usefulness = null | |
acceptance_limit = 0 | |
Starting limit for passenger acceptance for airport finding. | |
passenger_cargo_id = -1 | |
no_aircraft_warning_shown = false | |
Whether we have shown the no available aircraft warning. | |
route_without_aircraft = false | |
True if we have built airports but failed to buy airplanes due to lack of money. | |
incomplete_route_tile1 = 0 | |
Tile of first airport of incomplete air route without aircraft. | |
incomplete_route_tile2 = 0 | |
Tile of second airport of incomplete air route without aircraft. | |
towns_blacklist = null | |
List of towns where we already tried to build an airport. |
Define the WormAirManager class which handles airports and airplanes.
|
inline |
Create an instance of WormAirManager and initialize our variables.
function WormAirManager::AfterLoading | ( | ) |
Do any necessary processing after a savegame has been loaded.
Currently recomputes the values for the distance_of_route table.
function WormAirManager::BuildAircraft | ( | tile_1 | , |
tile_2 | , | ||
start_tile | |||
) |
Build an aircraft with orders from tile_1 to tile_2.
The best available aircraft will be bought.
tile_1 | Airport tile that should be used as the first order. |
tile_2 | Airport tile that should be used as the last order. |
start_tile | The Airport tile where the airplane should start. If this is 0 then it will start at tile_1. To let it start at tile_2 use the same value as tile_2. |
function WormAirManager::BuildAirportRoute | ( | ) |
Build an airport route.
Find 2 cities that are big enough and try to build airport in both cities. Then we can build an aircraft and try to make some money. We limit our amount of airports to max aircraft / AIRPORT_LIMIT_FACTOR * 2. (2 airports for a route, and AIRPORT_LIMIT_FACTOR planes per route)
function WormAirManager::BuildHQ | ( | ) |
Build the company headquarters if there isn't one yet.
function WormAirManager::BuildStatues | ( | ) |
Build statues in towns where we have a station as long as we have a reasonable amount of money.
We limit the amount of statues we build at any one time.
function WormAirManager::CheckForAirportsNeedingToBeUpgraded | ( | ) |
Checks all airports to see if they should be upgraded.
If they can it tries to upgrade the airport. If it fails after removing the old airport it will first try to replace it with another airport at another spot. If that also fails it will send the aircraft on the now crippled route to depot to be sold. After all aircraft are sold the remaining airport will be sold too.
function WormAirManager::DebugListRoute | ( | route | ) |
List all route info in the supplied list.
function WormAirManager::DebugListRouteInfo | ( | ) |
List all our air routes.
function WormAirManager::DebugListRoutes | ( | ) |
List all routes: per route all stations and all vehicles on that route with relevant info.
function WormAirManager::DebugListTowns | ( | towns_list | ) |
List all towns in the supplied list.
function WormAirManager::DebugListTownsUsed | ( | ) |
List of towns used and stations near those towns.
function WormAirManager::DebugListVehiclesSentToDepot | ( | ) |
List all vehicles that were sent to depot to be sold.
function WormAirManager::DebugVehicleInfo | ( | veh | ) |
Show info about the specified vehicle.
It's start and end town and distance between them.
veh | = Vehicle id |
function WormAirManager::EvaluateAircraft | ( | clear_warning_shown_flag | ) |
Task that evaluates all available aircraft for how suited they are for our purposes.
The suitedness values for aircraft which we can use are saved in engine_usefulness.
clear_warning_shown_flag | Whether to clear the no_aircraft_warning_shown flag. |
function WormAirManager::FindSuitableAirportSpot | ( | airport_type | , |
center_tile | |||
) |
Find a suitable spot for an airport, walking all towns hoping to find one.
When a town is used, it is marked as such and not re-used.
airport_type | The type of airport we want to build. |
center_tile | The tile around which we will search for a spot for the airport. |
function WormAirManager::GetAiportTileOtherEndOfRoute | ( | town_id | , |
station_tile | |||
) |
Get tile of airport at the other end of the route.
town_id | Town id of town at this end of route. |
station_tile | tile of station at this end of route. |
function WormAirManager::GetCostFactor | ( | engine | , |
costfactor_list | |||
) |
Valuator function to get the cost factor of an aircraft.
engine | The engine id of the aircraft. |
costfactor_list | The list (usually engine_usefulness) that holds the cost factors. |
function WormAirManager::GetMaximumDistance | ( | engine | ) |
Get the maximum distance this aircraft can safely fly without landing.
engine | The engine id for which we want to know the maximum distance. |
function WormAirManager::GetOptimalAvailableAirportType | ( | ) |
Get the optimal type of airport that is available.
function WormAirManager::GetTownFromStationTile | ( | st_tile | ) |
Get Town id in our towns_used list based on tile of station built near it.
function WormAirManager::HandleEvents | ( | ) |
Callback that handles events.
Currently only AIEvent.ET_VEHICLE_CRASHED is handled.
function WormAirManager::InsertGotoStationOrder | ( | veh | , |
order_pos | , | ||
station_tile | |||
) |
Insert go to station order for airport at station_tile.
veh | Vehicle to set the order for. |
order_pos | Position in the order list where order should be inserted. |
station_tile | Tile for the Airport of the to be inserted order. |
function WormAirManager::InsertMaintenanceOrder | ( | veh | , |
order_pos | , | ||
station_tile | |||
) |
Insert Maintenance order for airport at station_tile.
veh | Vehicle to set the order for |
order_pos | Position in the order list where order should be inserted |
station_tile | Tile for the Airport (not the hangar) of the order to be inserted. |
function WormAirManager::IsTownFirstOrder | ( | town_id | ) |
Check whether the airport at a certain town is used as the first order of a route.
town_id | The id of the town to check if it's the first order. |
function WormAirManager::IsValidFirstStation | ( | veh | ) |
Determine if the first station of the route of a vehicle is valid.
veh | Vehicle to determine the validity of the station for. |
function WormAirManager::IsValidLastStation | ( | veh | ) |
Determine if the last station of the route of a vehicle is valid.
veh | Vehicle to determine the validity of the station for. |
function WormAirManager::IsValidStationFromTile | ( | st_tile | ) |
Determine if a station is valid based on the station tile.
st_tile | The tile of the station. |
function WormAirManager::IsWithinNoiseLimit | ( | tile | , |
airport_type | |||
) |
Determines whether an airport at a given tile is allowed by the town authorities because of the noise level.
tile | The tile where the aiport would be built. |
airport_type | The type of the airport. |
function WormAirManager::ManageAirRoutes | ( | ) |
function WormAirManager::ManageVehicleRenewal | ( | ) |
Check all vehicles for being old or needing upgrading to a newer type.
It will send all vehicles that are non optimal to depot for selling.
function WormAirManager::RemoveAirport | ( | tile | ) |
Remove airport at specified tile.
If removing fails then give a warning.
tile | The tile of the airport that should be removed. |
function WormAirManager::RemoveVehicleFromLists | ( | vehicle | ) |
Remove a vehicle from our route lists and to depot list.
vehicle | The vehicle id that should be removed from the lists. |
function WormAirManager::ReplaceAirportTileInfo | ( | old_town_idx | , |
old_tile | , | ||
new_tile | , | ||
other_end_of_route_tile | |||
) |
Replace the airport town and station tile info in our lists and update orders.
old_town_idx | Index into towns_used list of town/station being replaced |
old_tile | The old tile for the airport being replaced. |
new_tile | The tile of the new airport. |
other_end_of_route_tile | Tile of other end of route (needed to access vehicles of route) |
function WormAirManager::ReplaceGotoStationOrder | ( | veh | , |
order_pos | , | ||
station_tile | |||
) |
Replace go to station order for airport at station_tile.
veh | Vehicle to set the order for. |
order_pos | Position in the order list where order should be inserted. |
station_tile | Tile for the Airport of the new to be inserted order. |
function WormAirManager::ReplaceOrders | ( | veh | , |
is_first_order | , | ||
breakdowns | , | ||
station_tile | |||
) |
Replace orders of a vehicle, either the first station or last station is replaced.
veh | Vehicle to replace the orders for. |
is_first_order | Whether to replace the orders for the first or last station. |
breakdowns | Whether breakdowns are on; if they are on we will add maintenance orders. |
station_tile | Tile of station for the new order. |
function WormAirManager::SellAirports | ( | airport_1_tile | , |
airport_2_tile | |||
) |
Sells the airports at tile_1 and tile_2.
Removes towns from towns_used list too.
airport_1_tile | The tile of the first airport to remove |
airport_2_tile | The tile of the other airport to remove |
function WormAirManager::SellVehicleInDepot | ( | vehicle | ) |
Sell the vehicle provided it's in depot.
If it's not yet in depot it will fail silently.
vehicle | The id of the vehicle that should be sold. |
function WormAirManager::SendAllVehiclesOfStationToDepot | ( | station_id | , |
sell_reason | |||
) |
Send all vehicles belonging to a station to depot for selling.
station_id | The id of the station. |
sell_reason | The reason for selling. Valid reasons are VEH_OLD_AGE, VEH_LOW_PROFIT, VEH_STATION_REMOVAL |
function WormAirManager::SendToDepotForSelling | ( | vehicle | , |
sell_reason | |||
) |
Send a vehicle to depot to be sold when it arrives.
vehicle | The vehicle id of the vehicle to be sold. |
sell_reason | The reason for selling. Valid reasons are VEH_OLD_AGE, VEH_LOW_PROFIT, VEH_STATION_REMOVAL |
function WormAirManager::UpdateAirportTileInfo | ( | town_idx | , |
station_id | , | ||
old_tile | |||
) |
Update the airport station tile info in our lists after upgrading airport.
Expects a valid station_id.
town_idx | Index into towns_used list. |
station_id | Id of the Airport station that got upgraded. |
old_tile | The old tile for the airport before upgrading. |