diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2017-09-23 01:32:26 +0200 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2017-09-23 01:32:26 +0200 |
| commit | e6d41c59ffa15dee7f8bc9d7ea0e12ac682da595 (patch) | |
| tree | 19a1b57479a66efe6f74c2eedfd4795554fa75b7 /Source/Aircraft.c | |
| parent | 286d13d71d017003df4cb44fc4ef4822d9e39c03 (diff) | |
| download | airport-e6d41c59ffa15dee7f8bc9d7ea0e12ac682da595.tar.gz | |
Bugfix: ptrPlayer->SelectedAircraft was being substracted when == 0 and caused a game crash. Bugfix: aircraft did not stop when DIR_SOUTH.
Diffstat (limited to 'Source/Aircraft.c')
| -rw-r--r-- | Source/Aircraft.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Source/Aircraft.c b/Source/Aircraft.c index 7d7c799..057f7e8 100644 --- a/Source/Aircraft.c +++ b/Source/Aircraft.c @@ -57,7 +57,7 @@ static TYPE_CARTESIAN_POS AircraftCenterPos; static char* AircraftLiveryNamesTable[] = {"PHX", NULL};
static AIRCRAFT_LIVERY AircraftLiveryTable[] = {AIRCRAFT_LIVERY_0, AIRCRAFT_LIVERY_UNKNOWN};
-static char* GameFileList[] = { "cdrom:\\DATA\\SPRITES\\ARROW.TIM;1" };
+static const char* GameFileList[] = { "cdrom:\\DATA\\SPRITES\\ARROW.TIM;1" };
static void* GameFileDest[] = { (GsSprite*)&ArrowSpr };
@@ -216,8 +216,6 @@ bool AircraftRemove(uint8_t aircraftIdx) {
if (ptrAircraft->FlightDataIdx == aircraftIdx)
{
- DEBUG_PRINT_VAR(ptrAircraft->FlightDataIdx);
- DEBUG_PRINT_VAR(aircraftIdx);
ptrAircraft->State = STATE_IDLE;
Serial_printf("Flight %d removed\n", ptrAircraft->FlightDataIdx);
return true;
@@ -247,7 +245,6 @@ void AircraftHandler(void) AircraftSpeed(ptrAircraft);
// Check collision against all other aircraft.
-
for (j = 0; j < GAME_MAX_AIRCRAFT; j++)
{
TYPE_AIRCRAFT_DATA* ptrOtherAircraft = &AircraftData[j];
@@ -293,7 +290,6 @@ void AircraftHandler(void) { GameResumeFlightFromAutoStop(ptrAircraft->FlightDataIdx); }
-
ptrAircraft->State = GameGetFlightDataStateFromIdx(ptrAircraft->FlightDataIdx);
}
@@ -320,7 +316,7 @@ bool AircraftCheckPath(TYPE_AIRCRAFT_DATA* ptrAircraft, TYPE_AIRCRAFT_DATA* ptrO break;
case AIRCRAFT_DIR_SOUTH:
- nextTile = currentTile - GameGetLevelColumns();
+ nextTile = currentTile + GameGetLevelColumns();
break;
case AIRCRAFT_DIR_NO_DIRECTION:
@@ -639,9 +635,12 @@ void AircraftDirection(TYPE_AIRCRAFT_DATA* ptrAircraft) ptrAircraft->IsoPos.z += AircraftSpeedsTable[AIRCRAFT_SPEED_FINAL_Z];
- if (GameInsideLevelFromIsoPos(&ptrAircraft->IsoPos) == true)
+ if (GameInsideLevelFromIsoPos(&ptrAircraft->IsoPos) == false)
{
GameRemoveFlight(ptrAircraft->FlightDataIdx, true);
+
+ // Deactivate TYPE_AIRCRAFT instance.
+ ptrAircraft->State = STATE_IDLE;
}
}
}
|
