diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2017-05-31 06:57:06 +0200 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2017-05-31 06:57:06 +0200 |
| commit | f5d1b4415c3bc8f145a84b8fd00d04629eb6e218 (patch) | |
| tree | 7cc987e598a65f8f365ecc41ba4704b7b674e168 /Source/Aircraft.c | |
| parent | 30b18fd262038f3ffaf24ad9884e1e121850019b (diff) | |
| download | airport-f5d1b4415c3bc8f145a84b8fd00d04629eb6e218.tar.gz | |
* Aircraft 0 was incorrectly being removed because indexes 0 to GAME_MAX_AIRCRAFT were being read instead of 0 to ptrPlayer->ActiveAircraft.
* Solved issues with linked list overflow. A detection mechanism has also been added.
* New state STATE_ENTERING_RWY.
* GameGuiActiveAircraftList has been moved from GameGui to Game module.
* Active aircraft list for each player is now updated each time that a new flight either appears or disappears.
* Other minor fixes.
Diffstat (limited to 'Source/Aircraft.c')
| -rw-r--r-- | Source/Aircraft.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/Source/Aircraft.c b/Source/Aircraft.c index da8e03a..14b1ea2 100644 --- a/Source/Aircraft.c +++ b/Source/Aircraft.c @@ -194,7 +194,10 @@ bool AircraftRemove(uint8_t aircraftIdx) {
if(ptrAircraft->FlightDataIdx == aircraftIdx)
{
+ DEBUG_PRINT_VAR(ptrAircraft->FlightDataIdx);
+ DEBUG_PRINT_VAR(aircraftIdx);
ptrAircraft->State = STATE_IDLE;
+ dprintf("Flight %d removed\n", ptrAircraft->FlightDataIdx);
return true;
}
}
@@ -240,18 +243,20 @@ void AircraftSpeed(TYPE_AIRCRAFT_DATA* ptrAircraft) case STATE_TAXIING:
// Fall through
- case STATE_HOLDING_RWY:
- // Fall through
- case STATE_READY_FOR_TAKEOFF:
+ case STATE_ENTERING_RWY:
ptrAircraft->Speed = AircraftSpeedsTable[AIRCRAFT_SPEED_GROUND];
break;
+ case STATE_READY_FOR_TAKEOFF:
+ // Fall through
case STATE_UNBOARDING:
// Fall through
case STATE_IDLE:
// Fall through
case STATE_LANDED:
// Fall through
+ case STATE_HOLDING_RWY:
+ // Fall through
default:
ptrAircraft->Speed = 0;
break;
@@ -415,8 +420,6 @@ void AircraftDirection(TYPE_AIRCRAFT_DATA* ptrAircraft) if(GameInsideLevelFromIsoPos(&ptrAircraft->IsoPos) == true)
{
- ptrAircraft->State = STATE_IDLE;
- dprintf("Flight %d removed\n", ptrAircraft->FlightDataIdx);
GameRemoveFlight(ptrAircraft->FlightDataIdx);
}
}
@@ -549,3 +552,10 @@ uint16_t* AircraftGetTargets(uint8_t index) return ptrAircraft->Target;
}
+
+bool AircraftMoving(uint8_t index)
+{
+ TYPE_AIRCRAFT_DATA* ptrAircraft = AircraftFromFlightDataIndex(index);
+
+ return (bool)ptrAircraft->Speed;
+}
|
