--- a/src/aircraft_cmd.cpp Tue Jul 24 21:54:45 2007 +0000
+++ b/src/aircraft_cmd.cpp Tue Jul 24 22:16:32 2007 +0000
@@ -64,11 +64,11 @@
this->sprite_height = GB(x, 24, 8);
}
-static bool AirportMove(Vehicle *v, AirportFTAClass *apc);
-static bool AirportSetBlocks(Vehicle *v, const AirportFTA *current_pos, AirportFTAClass *apc);
-static bool AirportHasBlock(Vehicle *v, const AirportFTA *current_pos, AirportFTAClass *apc);
-static bool AirportFindFreeTerminal(Vehicle *v, AirportFTAClass *apc);
-static bool AirportFindFreeHelipad(Vehicle *v, AirportFTAClass *apc);
+static bool AirportMove(Vehicle *v, const AirportFTAClass *apc);
+static bool AirportSetBlocks(Vehicle *v, const AirportFTA *current_pos, const AirportFTAClass *apc);
+static bool AirportHasBlock(Vehicle *v, const AirportFTA *current_pos, const AirportFTAClass *apc);
+static bool AirportFindFreeTerminal(Vehicle *v, const AirportFTAClass *apc);
+static bool AirportFindFreeHelipad(Vehicle *v, const AirportFTAClass *apc);
static void CrashAirplane(Vehicle *v);
static void AircraftNextAirportPos_and_Order(Vehicle *v);
@@ -108,7 +108,7 @@
FOR_ALL_STATIONS(st) {
if (st->owner != v->owner || !(st->facilities & FACIL_AIRPORT)) continue;
- AirportFTAClass *afc = st->Airport();
+ const AirportFTAClass *afc = st->Airport();
if (afc->nof_depots == 0 || (
/* don't crash the plane if we know it can't land at the airport */
afc->flags & AirportFTAClass::SHORT_STRIP &&
@@ -387,7 +387,7 @@
* of all depots, it is simple */
for (uint i = 0;; i++) {
const Station *st = GetStationByTile(tile);
- AirportFTAClass *apc;
+ const AirportFTAClass *apc;
if (IsCustomFSMportsSpecIndex(tile)) {
apc = st->fsmportsspeclist[1].spec->portFSM;
} else {
@@ -1003,7 +1003,7 @@
* @param apc The Airport Class being approached.
* @returns The index of the entry point
*/
-static byte AircraftGetEntryPoint(const Vehicle *v, AirportFTAClass *apc)
+static byte AircraftGetEntryPoint(const Vehicle *v, const AirportFTAClass *apc)
{
assert(v != NULL);
assert(apc != NULL);
@@ -1037,7 +1037,7 @@
{
int count;
const Station *st = GetStation(v->u.air.targetairport);
- AirportFTAClass *afc = st->Airport();
+ const AirportFTAClass *afc = st->Airport();
const AirportMovingData *amd;
/* prevent going to 0,0 if airport is deleted. */
@@ -1515,7 +1515,7 @@
v->current_order.type == OT_GOTO_DEPOT)
v->u.air.targetairport = v->current_order.dest;
- AirportFTAClass *apc = GetStation(v->u.air.targetairport)->Airport();
+ const AirportFTAClass *apc = GetStation(v->u.air.targetairport)->Airport();
v->u.air.pos = v->u.air.previous_pos = AircraftGetEntryPoint(v, apc);
}
@@ -1548,20 +1548,20 @@
////////////////////////////////////////////////////////////////////////////////
/////////////////// AIRCRAFT MOVEMENT SCHEME ////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
-static void AircraftEventHandler_EnterTerminal(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_EnterTerminal(Vehicle *v, const AirportFTAClass *apc)
{
AircraftEntersTerminal(v);
v->u.air.state = apc->layout[v->u.air.pos].heading;
}
-static void AircraftEventHandler_EnterHangar(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_EnterHangar(Vehicle *v, const AirportFTAClass *apc)
{
VehicleEnterDepot(v);
v->u.air.state = apc->layout[v->u.air.pos].heading;
}
/** In an Airport Hangar */
-static void AircraftEventHandler_InHangar(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_InHangar(Vehicle *v, const AirportFTAClass *apc)
{
/* if we just arrived, execute EnterHangar first */
if (v->u.air.previous_pos != v->u.air.pos) {
@@ -1600,7 +1600,7 @@
}
/** At one of the Airport's Terminals */
-static void AircraftEventHandler_AtTerminal(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_AtTerminal(Vehicle *v, const AirportFTAClass *apc)
{
/* if we just arrived, execute EnterTerminal first */
if (v->u.air.previous_pos != v->u.air.pos) {
@@ -1646,31 +1646,31 @@
AirportMove(v, apc);
}
-static void AircraftEventHandler_General(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_General(Vehicle *v, const AirportFTAClass *apc)
{
assert("OK, you shouldn't be here, check your Airport Scheme!" && 0);
}
-static void AircraftEventHandler_TakeOff(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_TakeOff(Vehicle *v, const AirportFTAClass *apc)
{
PlayAircraftSound(v); // play takeoffsound for airplanes
v->u.air.state = STARTTAKEOFF;
}
-static void AircraftEventHandler_StartTakeOff(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_StartTakeOff(Vehicle *v, const AirportFTAClass *apc)
{
v->u.air.state = ENDTAKEOFF;
v->UpdateDeltaXY(INVALID_DIR);
}
-static void AircraftEventHandler_EndTakeOff(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_EndTakeOff(Vehicle *v, const AirportFTAClass *apc)
{
v->u.air.state = FLYING;
/* get the next position to go to, differs per airport */
AircraftNextAirportPos_and_Order(v);
}
-static void AircraftEventHandler_HeliTakeOff(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_HeliTakeOff(Vehicle *v, const AirportFTAClass *apc)
{
const Player* p = GetPlayer(v->owner);
v->u.air.state = FLYING;
@@ -1692,7 +1692,7 @@
}
}
-static void AircraftEventHandler_Flying(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_Flying(Vehicle *v, const AirportFTAClass *apc)
{
Station *st = GetStation(v->u.air.targetairport);
@@ -1731,7 +1731,7 @@
v->u.air.pos = apc->layout[v->u.air.pos].next_position;
}
-static void AircraftEventHandler_Landing(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_Landing(Vehicle *v, const AirportFTAClass *apc)
{
v->u.air.state = ENDLANDING;
AircraftLandAirplane(v); // maybe crash airplane
@@ -1750,13 +1750,13 @@
}
}
-static void AircraftEventHandler_HeliLanding(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_HeliLanding(Vehicle *v, const AirportFTAClass *apc)
{
v->u.air.state = HELIENDLANDING;
v->UpdateDeltaXY(INVALID_DIR);
}
-static void AircraftEventHandler_EndLanding(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_EndLanding(Vehicle *v, const AirportFTAClass *apc)
{
/* next block busy, don't do a thing, just wait */
if (AirportHasBlock(v, &apc->layout[v->u.air.pos], apc)) return;
@@ -1772,7 +1772,7 @@
}
-static void AircraftEventHandler_HeliEndLanding(Vehicle *v, AirportFTAClass *apc)
+static void AircraftEventHandler_HeliEndLanding(Vehicle *v, const AirportFTAClass *apc)
{
/* next block busy, don't do a thing, just wait */
if (AirportHasBlock(v, &apc->layout[v->u.air.pos], apc)) return;
@@ -1790,7 +1790,7 @@
v->u.air.state = (apc->nof_depots != 0) ? HANGAR : HELITAKEOFF;
}
-typedef void AircraftStateHandler(Vehicle *v, AirportFTAClass *apc);
+typedef void AircraftStateHandler(Vehicle *v, const AirportFTAClass *apc);
static AircraftStateHandler * const _aircraft_state_handlers[] = {
AircraftEventHandler_General, // TO_ALL = 0
AircraftEventHandler_InHangar, // HANGAR = 1
@@ -1817,7 +1817,7 @@
AircraftEventHandler_AtTerminal, // HELIPAD4 = 22
};
-static void AirportClearBlock(const Vehicle *v, AirportFTAClass *apc)
+static void AirportClearBlock(const Vehicle *v, const AirportFTAClass *apc)
{
/* we have left the previous block, and entered the new one. Free the previous block */
if (apc->layout[v->u.air.previous_pos].block != apc->layout[v->u.air.pos].block) {
@@ -1832,14 +1832,14 @@
/* if aircraft is not in position, wait until it is */
if (!AircraftController(v)) return;
- AirportFTAClass *apc = GetStation(v->u.air.targetairport)->Airport();
+ const AirportFTAClass *apc = GetStation(v->u.air.targetairport)->Airport();
AirportClearBlock(v, apc);
AirportMove(v, apc); // move aircraft to next position
}
/* gets pos from vehicle and next orders */
-static bool AirportMove(Vehicle *v, AirportFTAClass *apc)
+static bool AirportMove(Vehicle *v, const AirportFTAClass *apc)
{
/* error handling */
if (v->u.air.pos >= apc->nofelements) {
@@ -1888,7 +1888,7 @@
}
/* returns true if the road ahead is busy, eg. you must wait before proceeding */
-static bool AirportHasBlock(Vehicle *v, const AirportFTA *current_pos, AirportFTAClass *apc)
+static bool AirportHasBlock(Vehicle *v, const AirportFTA *current_pos, const AirportFTAClass *apc)
{
const AirportFTA *reference = &apc->layout[v->u.air.pos];
const AirportFTA *next = &apc->layout[current_pos->next_position];
@@ -1919,7 +1919,7 @@
* @param apc airport on which block is requsted to be set
* @returns true on success. Eg, next block was free and we have occupied it
*/
-static bool AirportSetBlocks(Vehicle *v, const AirportFTA *current_pos, AirportFTAClass *apc)
+static bool AirportSetBlocks(Vehicle *v, const AirportFTA *current_pos, const AirportFTAClass *apc)
{
const AirportFTA *next = &apc->layout[current_pos->next_position];
const AirportFTA *reference = &apc->layout[v->u.air.pos];
@@ -1970,7 +1970,7 @@
return false;
}
-static uint GetNumTerminals(AirportFTAClass *apc)
+static uint GetNumTerminals(const AirportFTAClass *apc)
{
uint num = 0;
@@ -1979,7 +1979,7 @@
return num;
}
-static bool AirportFindFreeTerminal(Vehicle *v, AirportFTAClass *apc)
+static bool AirportFindFreeTerminal(Vehicle *v, const AirportFTAClass *apc)
{
/* example of more terminalgroups
* {0,HANGAR,NOTHING_block,1}, {0,255,TERM_GROUP1_block,0}, {0,255,TERM_GROUP2_ENTER_block,1}, {0,0,N,1},
@@ -2026,7 +2026,7 @@
return FreeTerminal(v, 0, GetNumTerminals(apc));
}
-static uint GetNumHelipads(AirportFTAClass *apc)
+static uint GetNumHelipads(const AirportFTAClass *apc)
{
uint num = 0;
@@ -2036,7 +2036,7 @@
}
-static bool AirportFindFreeHelipad(Vehicle *v, AirportFTAClass *apc)
+static bool AirportFindFreeHelipad(Vehicle *v, const AirportFTAClass *apc)
{
/* if an airport doesn't have helipads, use terminals */
if (apc->helipads == NULL) return AirportFindFreeTerminal(v, apc);
@@ -2169,7 +2169,7 @@
void UpdateAirplanesOnNewStation(const Station *st)
{
/* only 1 station is updated per function call, so it is enough to get entry_point once */
- AirportFTAClass *ap = st->Airport();
+ const AirportFTAClass *ap = st->Airport();
Vehicle *v;
FOR_ALL_VEHICLES(v) {