Bugfix: ptrPlayer->SelectedAircraft was being substracted when == 0 and caused a game crash. Bugfix: aircraft did not stop when DIR_SOUTH.
This commit is contained in:
parent
286d13d71d
commit
e6d41c59ff
BIN
Bin/AIRPORT.bin
BIN
Bin/AIRPORT.bin
Binary file not shown.
|
@ -6,28 +6,30 @@
|
|||
#For example:
|
||||
14:55
|
||||
#Aircraft arrival (or departure) must be set relative to initial time, in HH:MM format.
|
||||
ARRIVAL;PHX1802;100;00:10;0;360
|
||||
ARRIVAL;PHX2015;100;00:10;0;360
|
||||
ARRIVAL;PHX2016;100;00:40;0;360
|
||||
ARRIVAL;PHX2017;100;00:50;0;360
|
||||
ARRIVAL;PHX2018;100;01:40;0;360
|
||||
ARRIVAL;PHX2019;100;01:20;0;360
|
||||
ARRIVAL;PHX2020;100;02:00;0;360
|
||||
ARRIVAL;PHX2021;100;00:05;0;360
|
||||
ARRIVAL;PHX2022;100;00:15;0;360
|
||||
ARRIVAL;PHX2023;100;00:45;0;360
|
||||
ARRIVAL;PHX2024;100;01:45;0;360
|
||||
ARRIVAL;PHX2025;100;01:20;0;360
|
||||
ARRIVAL;PHX2026;100;01:10;0;360
|
||||
DEPARTURE;PHX1000;100;00:05;19;180
|
||||
DEPARTURE;PHX1001;100;00:15;19;180
|
||||
DEPARTURE;PHX1002;100;00:30;19;180
|
||||
DEPARTURE;PHX1003;100;00:45;19;180
|
||||
DEPARTURE;PHX1004;100;01:10;19;180
|
||||
DEPARTURE;PHX1280;100;01:30;19;180
|
||||
DEPARTURE;PHX1332;100;00:50;21;180
|
||||
DEPARTURE;PHX1333;100;01:00;19;180
|
||||
DEPARTURE;PHX1334;100;01:15;21;180
|
||||
DEPARTURE;PHX1336;100;01:20;21;180
|
||||
ARRIVAL;PHX2026;120;00:05;0;360
|
||||
ARRIVAL;PHX2026;80;00:10;0;360
|
||||
#ARRIVAL;PHX1802;100;00:10;0;360
|
||||
#ARRIVAL;PHX2015;100;00:10;0;360
|
||||
#ARRIVAL;PHX2016;100;00:40;0;360
|
||||
#ARRIVAL;PHX2017;100;00:50;0;360
|
||||
#ARRIVAL;PHX2018;100;01:40;0;360
|
||||
#ARRIVAL;PHX2019;100;01:20;0;360
|
||||
#ARRIVAL;PHX2020;100;02:00;0;360
|
||||
#ARRIVAL;PHX2021;100;00:05;0;360
|
||||
#ARRIVAL;PHX2022;100;00:15;0;360
|
||||
#ARRIVAL;PHX2023;100;00:45;0;360
|
||||
#ARRIVAL;PHX2024;100;01:45;0;360
|
||||
#ARRIVAL;PHX2025;100;01:20;0;360
|
||||
#ARRIVAL;PHX2026;100;01:10;0;360
|
||||
#DEPARTURE;PHX1000;100;00:05;19;180
|
||||
#DEPARTURE;PHX1001;100;00:15;19;180
|
||||
#DEPARTURE;PHX1002;100;00:30;19;180
|
||||
#DEPARTURE;PHX1003;100;00:45;19;180
|
||||
#DEPARTURE;PHX1004;100;01:10;19;180
|
||||
#DEPARTURE;PHX1280;100;01:30;19;180
|
||||
#DEPARTURE;PHX1332;100;00:50;21;180
|
||||
#DEPARTURE;PHX1333;100;01:00;19;180
|
||||
#DEPARTURE;PHX1334;100;01:15;21;180
|
||||
#DEPARTURE;PHX1336;100;01:20;21;180
|
||||
#ARRIVAL;PHX2026;120;00:05;0;360
|
||||
#ARRIVAL;PHX2026;80;00:10;0;360
|
||||
DEPARTURE;PHX2026;80;00:05;19;180
|
||||
DEPARTURE;PHX2026;80;00:05;21;180
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -233,16 +233,16 @@ static SsVag BeepSnd;
|
|||
// Instances for player-specific data
|
||||
static TYPE_PLAYER PlayerData[MAX_PLAYERS];
|
||||
|
||||
static char* GameFileList[] = { "cdrom:\\DATA\\SPRITES\\TILESET1.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\GAMEPLN.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\PLNBLUE.CLT;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\MOUSE.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\BLDNGS1.TIM;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\RCPW1A1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\RCPM1A1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\RCTM1F1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\TAKEOFF1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\BEEP.VAG;1" };
|
||||
static const char* GameFileList[] = { "cdrom:\\DATA\\SPRITES\\TILESET1.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\GAMEPLN.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\PLNBLUE.CLT;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\MOUSE.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\BLDNGS1.TIM;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\RCPW1A1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\RCPM1A1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\RCTM1F1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\TAKEOFF1.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\BEEP.VAG;1" };
|
||||
|
||||
static void* GameFileDest[] = { (GsSprite*)&GameTilesetSpr ,
|
||||
(GsSprite*)&GamePlaneSpr ,
|
||||
|
@ -255,7 +255,7 @@ static void* GameFileDest[] = { (GsSprite*)&GameTilesetSpr ,
|
|||
(SsVag*)&TakeoffSnd ,
|
||||
(SsVag*)&BeepSnd };
|
||||
|
||||
static char* GamePlt[] = { "cdrom:\\DATA\\LEVELS\\LEVEL1.PLT;1" };
|
||||
static const char* GamePlt[] = { "cdrom:\\DATA\\LEVELS\\LEVEL1.PLT;1" };
|
||||
static void* GamePltDest[] = {(TYPE_FLIGHT_DATA*)&FlightData };
|
||||
|
||||
static char* GameLevelList[] = {"cdrom:\\DATA\\LEVELS\\LEVEL1.LVL;1"};
|
||||
|
@ -914,23 +914,35 @@ void GamePlayerHandler(TYPE_PLAYER* ptrPlayer, TYPE_FLIGHT_DATA* ptrFlightData)
|
|||
|
||||
// Recalculate ptrPlayer->SelectedAircraft. In case new aircraft appear, we may be pointing
|
||||
// to a incorrect instance.
|
||||
dprintf("GameActiveAircraftList\n");
|
||||
GameActiveAircraftList(ptrPlayer, ptrFlightData);
|
||||
|
||||
dprintf("GameAircraftCollisionFlag\n");
|
||||
if (GameAircraftCollisionFlag == true)
|
||||
{
|
||||
TYPE_ISOMETRIC_POS IsoPos = AircraftGetIsoPos(GameAircraftCollisionIdx);
|
||||
CameraMoveToIsoPos(ptrPlayer, IsoPos);
|
||||
}
|
||||
|
||||
dprintf("GameStateUnboarding\n");
|
||||
GameStateUnboarding(ptrPlayer, ptrFlightData);
|
||||
dprintf("GameStateLockTarget\n");
|
||||
GameStateLockTarget(ptrPlayer, ptrFlightData);
|
||||
dprintf("GameStateSelectRunway\n");
|
||||
GameStateSelectRunway(ptrPlayer, ptrFlightData);
|
||||
dprintf("GameStateSelectTaxiwayRunway\n");
|
||||
GameStateSelectTaxiwayRunway(ptrPlayer, ptrFlightData);
|
||||
dprintf("GameStateSelectTaxiwayParking\n");
|
||||
GameStateSelectTaxiwayParking(ptrPlayer, ptrFlightData);
|
||||
dprintf("GameStateShowAircraft\n");
|
||||
GameStateShowAircraft(ptrPlayer, ptrFlightData);
|
||||
dprintf("CameraHandler\n");
|
||||
CameraHandler(ptrPlayer);
|
||||
dprintf("GameGuiActiveAircraftPage\n");
|
||||
GameGuiActiveAircraftPage(ptrPlayer, ptrFlightData);
|
||||
dprintf("GameSelectAircraftFromList\n");
|
||||
GameSelectAircraftFromList(ptrPlayer, ptrFlightData);
|
||||
dprintf("Finished GameHandler\n");
|
||||
}
|
||||
|
||||
/* *******************************************************************
|
||||
|
@ -1465,6 +1477,7 @@ void GameAircraftState(uint8_t i)
|
|||
{
|
||||
// Player(s) lost a flight!
|
||||
GameRemoveFlight(i, false);
|
||||
dprintf("Flight %d lost\n", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2263,7 +2276,7 @@ void GameGetRunwayArray(void)
|
|||
* information about all available flights.
|
||||
*
|
||||
* @brief:
|
||||
* Determines actions for aircraft on PAD_CROSS pressed.
|
||||
* Actions for ptrPlayer->ShowAircraftData.
|
||||
*
|
||||
* @remarks:
|
||||
*
|
||||
|
@ -3344,6 +3357,7 @@ void GameStateUnboarding(TYPE_PLAYER* ptrPlayer, TYPE_FLIGHT_DATA* ptrFlightData
|
|||
// Flight has finished. Remove aircraft and set finished flag
|
||||
ptrPlayer->Unboarding = false;
|
||||
GameRemoveFlight(ptrPlayer->FlightDataSelectedAircraft, true);
|
||||
dprintf("YO\n");
|
||||
}
|
||||
|
||||
ptrPlayer->UnboardingSequenceIdx = 0;
|
||||
|
@ -3604,25 +3618,25 @@ bool GameInsideLevelFromIsoPos(TYPE_ISOMETRIC_FIX16_POS* ptrIsoPos)
|
|||
|
||||
if (x < 0)
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (x > (GameLevelColumns << TILE_SIZE_BIT_SHIFT))
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (y < 0)
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (y > (GameLevelColumns << TILE_SIZE_BIT_SHIFT) )
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* *******************************************************************************************
|
||||
|
@ -3694,13 +3708,9 @@ void GameRemoveFlight(uint8_t idx, bool successful)
|
|||
}
|
||||
else
|
||||
{
|
||||
Serial_printf("1\n");
|
||||
|
||||
// GameRwyArray is filled with runway tiles.
|
||||
GameGetSelectedRunwayArray(GameUsedRwy[k], rwyArray, GAME_MAX_RWY_LENGTH * sizeof(uint16_t) );
|
||||
|
||||
Serial_printf("2\n");
|
||||
|
||||
if (SystemContains_u16( AircraftGetTileFromFlightDataIndex(idx),
|
||||
rwyArray,
|
||||
sizeof(rwyArray) / sizeof(rwyArray[0]) ) == true)
|
||||
|
@ -3723,8 +3733,11 @@ void GameRemoveFlight(uint8_t idx, bool successful)
|
|||
// STATE_APPROACH is the only state which is not linked to a TYPE_AIRCRAFT_DATA instance.
|
||||
}
|
||||
|
||||
ptrPlayer->LockTarget = false;
|
||||
ptrPlayer->LockedAircraft = FLIGHT_DATA_INVALID_IDX;
|
||||
if (ptrPlayer->LockedAircraft == idx)
|
||||
{
|
||||
ptrPlayer->LockTarget = false;
|
||||
ptrPlayer->LockedAircraft = FLIGHT_DATA_INVALID_IDX;
|
||||
}
|
||||
|
||||
if (successful == true)
|
||||
{
|
||||
|
@ -3735,9 +3748,12 @@ void GameRemoveFlight(uint8_t idx, bool successful)
|
|||
GameScore = (GameScore < LOST_FLIGHT_PENALTY)? 0 : (GameScore - LOST_FLIGHT_PENALTY);
|
||||
}
|
||||
|
||||
if (ptrPlayer->SelectedAircraft >= j)
|
||||
if (ptrPlayer->SelectedAircraft != 0)
|
||||
{
|
||||
ptrPlayer->SelectedAircraft--;
|
||||
if (ptrPlayer->SelectedAircraft >= j)
|
||||
{
|
||||
ptrPlayer->SelectedAircraft--;
|
||||
}
|
||||
}
|
||||
|
||||
FlightData.Passengers[idx] = 0;
|
||||
|
@ -3968,7 +3984,7 @@ void GameAircraftCollision(uint8_t AircraftIdx)
|
|||
void GameStopFlight(uint8_t AircraftIdx)
|
||||
{
|
||||
FL_STATE* ptrState = &FlightData.State[AircraftIdx];
|
||||
|
||||
|
||||
if (*ptrState == STATE_TAXIING)
|
||||
{
|
||||
// Only allow auto stop under taxi
|
||||
|
@ -3992,7 +4008,7 @@ void GameStopFlight(uint8_t AircraftIdx)
|
|||
* that taxiing can be resumed.
|
||||
*
|
||||
* *******************************************************************************************/
|
||||
|
||||
|
||||
void GameResumeFlightFromAutoStop(uint8_t AircraftIdx)
|
||||
{
|
||||
FL_STATE* ptrState = &FlightData.State[AircraftIdx];
|
||||
|
|
|
@ -206,10 +206,10 @@ static bool GameGuiClearPassengersLeft_Flag;
|
|||
static bool GameGuiBubbleShowFlag;
|
||||
static bool GameGuiBubbleVibrationFlag;
|
||||
|
||||
static char* GameFileList[] = { "cdrom:\\DATA\\SPRITES\\BUBBLE.TIM;1" ,
|
||||
"cdrom:\\DATA\\FONTS\\FONT_1.FNT;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\DEPARR.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\PAGEUPDN.TIM;1" };
|
||||
static const char* GameFileList[] = { "cdrom:\\DATA\\SPRITES\\BUBBLE.TIM;1" ,
|
||||
"cdrom:\\DATA\\FONTS\\FONT_1.FNT;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\DEPARR.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\PAGEUPDN.TIM;1" };
|
||||
|
||||
static void* GameFileDest[] = {(GsSprite*)&BubbleSpr ,
|
||||
(TYPE_FONT*)&RadioFont ,
|
||||
|
|
|
@ -78,7 +78,7 @@ static void LoadMenuInit(void);
|
|||
static void ISR_LoadMenuVBlank(void);
|
||||
static bool LoadMenuISRHasEnded(void);
|
||||
static bool LoadMenuISRHasStarted(void);
|
||||
static void LoadMenuLoadFileList( char* fileList[], void* dest[],
|
||||
static void LoadMenuLoadFileList( const char* fileList[], void* dest[],
|
||||
uint8_t szFileList, uint8_t szDestList);
|
||||
|
||||
/* *************************************
|
||||
|
@ -91,9 +91,9 @@ static GsSprite LoadMenuTitleSpr;
|
|||
static GsLine LoadMenuBarLines[LOADING_BAR_N_LINES];
|
||||
static GsRectangle LoadMenuBarRect;
|
||||
|
||||
static char* LoadMenuFiles[] = { "cdrom:\\DATA\\SPRITES\\PLANE.TIM;1",
|
||||
"cdrom:\\DATA\\SPRITES\\LOADING.TIM;1",
|
||||
"cdrom:\\DATA\\FONTS\\FONT_2.FNT;1" };
|
||||
static const char* LoadMenuFiles[] = { "cdrom:\\DATA\\SPRITES\\PLANE.TIM;1",
|
||||
"cdrom:\\DATA\\SPRITES\\LOADING.TIM;1",
|
||||
"cdrom:\\DATA\\FONTS\\FONT_2.FNT;1" };
|
||||
|
||||
static void* LoadMenuDest[] = { (GsSprite*)&LoadMenuPlaneSpr,
|
||||
(GsSprite*)&LoadMenuTitleSpr,
|
||||
|
@ -439,7 +439,7 @@ bool LoadMenuISRHasStarted(void)
|
|||
return isr_started;
|
||||
}
|
||||
|
||||
void LoadMenu( char* fileList[],
|
||||
void LoadMenu( const char* fileList[],
|
||||
void* dest[],
|
||||
uint8_t szFileList , uint8_t szDestList)
|
||||
{
|
||||
|
@ -451,11 +451,10 @@ void LoadMenu( char* fileList[],
|
|||
while (LoadMenuISRHasStarted() == false);
|
||||
}
|
||||
|
||||
LoadMenuLoadFileList(fileList,dest,szFileList,szDestList);
|
||||
|
||||
LoadMenuLoadFileList(fileList, dest, szFileList, szDestList);
|
||||
}
|
||||
|
||||
void LoadMenuLoadFileList( char* fileList[], void* dest[],
|
||||
void LoadMenuLoadFileList( const char* fileList[], void* dest[],
|
||||
uint8_t szFileList, uint8_t szDestList)
|
||||
{
|
||||
char aux_file_name[100];
|
||||
|
@ -472,7 +471,7 @@ void LoadMenuLoadFileList( char* fileList[], void* dest[],
|
|||
|
||||
for (fileLoadedCount = 0; fileLoadedCount < szFileList ; fileLoadedCount++)
|
||||
{
|
||||
strCurrentFile = fileList[fileLoadedCount];
|
||||
strCurrentFile = (char*)fileList[fileLoadedCount];
|
||||
|
||||
if (strCurrentFile == NULL)
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
* Global prototypes
|
||||
* *************************************/
|
||||
|
||||
void LoadMenu( char* fileList[],
|
||||
void LoadMenu( const char* fileList[],
|
||||
void* dest[],
|
||||
uint8_t szFileList , uint8_t szDestList);
|
||||
|
||||
|
|
|
@ -38,9 +38,9 @@ EXE_PATH = Exe
|
|||
|
||||
# PCSX-R
|
||||
EMULATOR_DIR = ~/pcsxr
|
||||
EMULATOR = pcsxr.exe
|
||||
EMULATOR = pcsxr
|
||||
# Uncomment the line below if you get no sound output under Linux.
|
||||
#SOUND_INTERFACE += padsp
|
||||
SOUND_INTERFACE += padsp
|
||||
EMULATOR_FLAGS = -nogui -psxout
|
||||
|
||||
# Objects definition
|
||||
|
@ -110,11 +110,14 @@ SPRITE_OBJECTS += $(addprefix $(OBJ_FONTS_PATH)/, INTROFNT.TIM \
|
|||
# Instructions
|
||||
# ------------------------------------
|
||||
|
||||
build: $(BIN_TARGET_PATH)/$(PROJECT).bin
|
||||
$(BIN_TARGET_PATH)/$(PROJECT).bin: $(EXE_PATH)/$(PROJECT).iso
|
||||
#~ mkpsxiso $< $@ $(LICENSE_FILE) $(MUSIC_TRACKS)
|
||||
mkpsxiso $< $@ $(LICENSE_FILE)
|
||||
# $(PROJECT).cue is automatically generated by mkpsxiso
|
||||
|
||||
rebuild:
|
||||
make clean
|
||||
make build
|
||||
make $(BIN_TARGET_PATH)/$(PROJECT).bin
|
||||
|
||||
-include $(DEPS)
|
||||
|
||||
|
@ -127,7 +130,7 @@ clean:
|
|||
rm -f $(OBJ_LEVELS_DIR)/*.PLT
|
||||
rm -f $(OBJ_SPRITES_PATH)/*.TIM
|
||||
rm -f $(OBJ_FONTS_PATH)/*.TIM
|
||||
|
||||
|
||||
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.c
|
||||
$(CC) $< $(DEFINE) $(CC_FLAGS) -MM > $@
|
||||
|
||||
|
@ -141,18 +144,14 @@ $(EXE_PATH)/$(PROJECT).elf: $(OBJECTS)
|
|||
$(EXE_PATH)/$(PROJECT).iso: $(EXE_PATH)/$(PROJECT).exe $(SOUND_OBJECTS) $(LEVEL_OBJECTS) $(SPRITE_OBJECTS)
|
||||
mkisofs -o $@ -V $(PROJECT) -sysid PLAYSTATION $(CDROM_ROOT)
|
||||
|
||||
$(BIN_TARGET_PATH)/$(PROJECT).bin: $(EXE_PATH)/$(PROJECT).iso
|
||||
#~ mkpsxiso $< $@ $(LICENSE_FILE) $(MUSIC_TRACKS)
|
||||
mkpsxiso $< $@ $(LICENSE_FILE)
|
||||
# $(PROJECT).cue is automatically generated by mkpsxiso
|
||||
|
||||
$(EXE_PATH)/$(PROJECT).exe: $(EXE_PATH)/$(PROJECT).elf
|
||||
$(ELF2EXE) $< $@ $(ELF2EXE_FLAGS)
|
||||
cp $@ $(CDROM_ROOT)
|
||||
|
||||
#~ emulator:
|
||||
#~ export PATH=$$PATH:$(EMULATOR_DIR)
|
||||
#~ $(EMULATOR) -cdfile $(PROJECT_DIR)/Bin/$(PROJECT).bin $(EMULATOR_FLAGS)
|
||||
run: $(BIN_TARGET_PATH)/$(PROJECT).bin
|
||||
export PATH=$$PATH:$(EMULATOR_DIR)
|
||||
$(EMULATOR) -cdfile $(PROJECT_DIR)/Bin/$(PROJECT).bin $(EMULATOR_FLAGS)
|
||||
|
||||
$(OBJ_SPRITES_PATH)/%.TIM: $(SRC_SPRITES_PATH)/%.bmp $(SRC_SPRITES_PATH)/%.flags
|
||||
$(BMP2TIM) $< $@ `cat $(word 2,$^)`
|
||||
|
@ -184,4 +183,4 @@ clean_music:
|
|||
# ----------------------------------------
|
||||
# Phony targets
|
||||
# ----------------------------------------
|
||||
.PHONY: build sounds clean music levels tiles
|
||||
.PHONY: sounds clean music
|
||||
|
|
|
@ -131,20 +131,20 @@ static TYPE_CHEAT StackCheckCheat;
|
|||
static TYPE_CHEAT DevMenuCheat;
|
||||
static TYPE_CHEAT SerialCheat;
|
||||
|
||||
static char* MainMenuFiles[] = { "cdrom:\\DATA\\SPRITES\\MAINMENU.TIM;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\BELL.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\ACCEPT.VAG;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\BUTTONS.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\MENUSTAR.TIM;1" ,
|
||||
static const char* MainMenuFiles[] = { "cdrom:\\DATA\\SPRITES\\MAINMENU.TIM;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\BELL.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\ACCEPT.VAG;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\BUTTONS.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\MENUSTAR.TIM;1" ,
|
||||
#ifndef NO_INTRO
|
||||
"cdrom:\\DATA\\SPRITES\\PSXDISK.TIM;1" ,
|
||||
"cdrom:\\DATA\\FONTS\\INTROFNT.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\GPL.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\OPENSRC.TIM;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\TRAYCL.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\SPINDISK.VAG;1"
|
||||
"cdrom:\\DATA\\SPRITES\\PSXDISK.TIM;1" ,
|
||||
"cdrom:\\DATA\\FONTS\\INTROFNT.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\GPL.TIM;1" ,
|
||||
"cdrom:\\DATA\\SPRITES\\OPENSRC.TIM;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\TRAYCL.VAG;1" ,
|
||||
"cdrom:\\DATA\\SOUNDS\\SPINDISK.VAG;1"
|
||||
#endif // NO_INTRO
|
||||
};
|
||||
};
|
||||
|
||||
static void* MainMenuDest[] = { (GsSprite*)&MenuSpr ,
|
||||
(SsVag*)&BellSnd ,
|
||||
|
@ -207,7 +207,8 @@ void TwoPlayerMenu(void)
|
|||
|
||||
void MainMenuInit(void)
|
||||
{
|
||||
LoadMenu( MainMenuFiles,MainMenuDest,
|
||||
LoadMenu( MainMenuFiles,
|
||||
MainMenuDest,
|
||||
sizeof(MainMenuFiles) / sizeof(char*) ,
|
||||
sizeof(MainMenuDest) / sizeof(void*) );
|
||||
|
||||
|
@ -550,7 +551,7 @@ void MainMenuDrawButton(TYPE_MMBtn * btn)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
MenuSpr.u += btn->offset_u;
|
||||
MenuSpr.v += btn->offset_v;
|
||||
MenuSpr.y -= MainMenuBtnAni[btn->timer];
|
||||
|
|
|
@ -6,28 +6,30 @@
|
|||
#For example:
|
||||
14:55
|
||||
#Aircraft arrival (or departure) must be set relative to initial time, in HH:MM format.
|
||||
ARRIVAL;PHX1802;100;00:10;0;360
|
||||
ARRIVAL;PHX2015;100;00:10;0;360
|
||||
ARRIVAL;PHX2016;100;00:40;0;360
|
||||
ARRIVAL;PHX2017;100;00:50;0;360
|
||||
ARRIVAL;PHX2018;100;01:40;0;360
|
||||
ARRIVAL;PHX2019;100;01:20;0;360
|
||||
ARRIVAL;PHX2020;100;02:00;0;360
|
||||
ARRIVAL;PHX2021;100;00:05;0;360
|
||||
ARRIVAL;PHX2022;100;00:15;0;360
|
||||
ARRIVAL;PHX2023;100;00:45;0;360
|
||||
ARRIVAL;PHX2024;100;01:45;0;360
|
||||
ARRIVAL;PHX2025;100;01:20;0;360
|
||||
ARRIVAL;PHX2026;100;01:10;0;360
|
||||
DEPARTURE;PHX1000;100;00:05;19;180
|
||||
DEPARTURE;PHX1001;100;00:15;19;180
|
||||
DEPARTURE;PHX1002;100;00:30;19;180
|
||||
DEPARTURE;PHX1003;100;00:45;19;180
|
||||
DEPARTURE;PHX1004;100;01:10;19;180
|
||||
DEPARTURE;PHX1280;100;01:30;19;180
|
||||
DEPARTURE;PHX1332;100;00:50;21;180
|
||||
DEPARTURE;PHX1333;100;01:00;19;180
|
||||
DEPARTURE;PHX1334;100;01:15;21;180
|
||||
DEPARTURE;PHX1336;100;01:20;21;180
|
||||
ARRIVAL;PHX2026;120;00:05;0;360
|
||||
ARRIVAL;PHX2026;80;00:10;0;360
|
||||
#ARRIVAL;PHX1802;100;00:10;0;360
|
||||
#ARRIVAL;PHX2015;100;00:10;0;360
|
||||
#ARRIVAL;PHX2016;100;00:40;0;360
|
||||
#ARRIVAL;PHX2017;100;00:50;0;360
|
||||
#ARRIVAL;PHX2018;100;01:40;0;360
|
||||
#ARRIVAL;PHX2019;100;01:20;0;360
|
||||
#ARRIVAL;PHX2020;100;02:00;0;360
|
||||
#ARRIVAL;PHX2021;100;00:05;0;360
|
||||
#ARRIVAL;PHX2022;100;00:15;0;360
|
||||
#ARRIVAL;PHX2023;100;00:45;0;360
|
||||
#ARRIVAL;PHX2024;100;01:45;0;360
|
||||
#ARRIVAL;PHX2025;100;01:20;0;360
|
||||
#ARRIVAL;PHX2026;100;01:10;0;360
|
||||
#DEPARTURE;PHX1000;100;00:05;19;180
|
||||
#DEPARTURE;PHX1001;100;00:15;19;180
|
||||
#DEPARTURE;PHX1002;100;00:30;19;180
|
||||
#DEPARTURE;PHX1003;100;00:45;19;180
|
||||
#DEPARTURE;PHX1004;100;01:10;19;180
|
||||
#DEPARTURE;PHX1280;100;01:30;19;180
|
||||
#DEPARTURE;PHX1332;100;00:50;21;180
|
||||
#DEPARTURE;PHX1333;100;01:00;19;180
|
||||
#DEPARTURE;PHX1334;100;01:15;21;180
|
||||
#DEPARTURE;PHX1336;100;01:20;21;180
|
||||
#ARRIVAL;PHX2026;120;00:05;0;360
|
||||
#ARRIVAL;PHX2026;80;00:10;0;360
|
||||
DEPARTURE;PHX2026;80;00:05;19;180
|
||||
DEPARTURE;PHX2026;80;00:05;21;180
|
||||
|
|
Loading…
Reference in New Issue