Document Trainer Tower scripts
This commit is contained in:
+11
-10
@@ -22,6 +22,7 @@
|
||||
#include "constants/moves.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/trainer_classes.h"
|
||||
#include "constants/trainer_tower.h"
|
||||
|
||||
struct BattleWindowText
|
||||
{
|
||||
@@ -1294,9 +1295,9 @@ const u8 gUnknown_83FE94D[] = _("a PSYCHIC move");
|
||||
const u8 gUnknown_83FE95C[] = _("an ICE move");
|
||||
const u8 gUnknown_83FE968[] = _("a DRAGON move");
|
||||
const u8 gUnknown_83FE976[] = _("a DARK move");
|
||||
const u8 gUnknown_83FE982[] = _("TIME BOARD");
|
||||
const u8 gUnknown_83FE98D[] = _("CLEAR TIME");
|
||||
const u8 gUnknown_83FE998[] = _("{STR_VAR_1}MIN. {STR_VAR_2}.{STR_VAR_3}SEC.");
|
||||
const u8 gText_TimeBoard[] = _("TIME BOARD");
|
||||
const u8 gText_ClearTime[] = _("CLEAR TIME"); // Unused
|
||||
const u8 gText_XMinYZSec[] = _("{STR_VAR_1}MIN. {STR_VAR_2}.{STR_VAR_3}SEC.");
|
||||
const u8 gUnknown_83FE9A9[] = _("1F");
|
||||
const u8 gUnknown_83FE9AC[] = _("2F");
|
||||
const u8 gUnknown_83FE9AF[] = _("3F");
|
||||
@@ -1306,7 +1307,7 @@ const u8 gUnknown_83FE9B8[] = _("6F");
|
||||
const u8 gUnknown_83FE9BB[] = _("7F");
|
||||
const u8 gUnknown_83FE9BE[] = _("8F");
|
||||
|
||||
const u8 *const gUnknown_83FE9C4[] = {
|
||||
const u8 *const gTrainerTowerChallengeTypeTexts[NUM_TOWER_CHALLENGE_TYPES] = {
|
||||
gOtherText_Single,
|
||||
gOtherText_Double,
|
||||
gOtherText_Knockout,
|
||||
@@ -1990,7 +1991,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
||||
toCpy = gTrainerClassNames[GetBattleTowerTrainerClassNameId()];
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_TOWER)
|
||||
toCpy = gTrainerClassNames[sub_815DA10()];
|
||||
toCpy = gTrainerClassNames[GetTrainerTowerOpponentClass()];
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
|
||||
toCpy = gTrainerClassNames[GetEreaderTrainerClassId()];
|
||||
else
|
||||
@@ -2014,7 +2015,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_TOWER)
|
||||
{
|
||||
sub_815DA28(text);
|
||||
GetTrainerTowerOpponentName(text);
|
||||
toCpy = text;
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
|
||||
@@ -2054,7 +2055,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
||||
case B_TXT_TRAINER1_LOSE_TEXT: // trainerA lose text
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_TOWER)
|
||||
{
|
||||
sub_815DC40(gStringVar4, 0);
|
||||
GetTrainerTowerOpponentLoseText(gStringVar4, 0);
|
||||
toCpy = gStringVar4;
|
||||
}
|
||||
else
|
||||
@@ -2065,7 +2066,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
||||
case B_TXT_TRAINER1_WIN_TEXT: // trainerA win text
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_TOWER)
|
||||
{
|
||||
sub_815DBF4(gStringVar4, 0);
|
||||
GetTrainerTowerOpponentWinText(gStringVar4, 0);
|
||||
toCpy = gStringVar4;
|
||||
}
|
||||
else
|
||||
@@ -2074,11 +2075,11 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
||||
}
|
||||
break;
|
||||
case B_TXT_TRAINER2_LOSE_TEXT:
|
||||
sub_815DC40(gStringVar4, 1);
|
||||
GetTrainerTowerOpponentLoseText(gStringVar4, 1);
|
||||
toCpy = gStringVar4;
|
||||
break;
|
||||
case B_TXT_TRAINER2_WIN_TEXT:
|
||||
sub_815DBF4(gStringVar4, 1);
|
||||
GetTrainerTowerOpponentWinText(gStringVar4, 1);
|
||||
toCpy = gStringVar4;
|
||||
break;
|
||||
case B_TXT_26: // ?
|
||||
|
||||
+7
-7
@@ -6,14 +6,14 @@
|
||||
|
||||
u8 sub_815D654(void)
|
||||
{
|
||||
return (gSaveBlock1Ptr->unkArray[0].unk9 + 1) % 256;
|
||||
return (gSaveBlock1Ptr->trainerTower[0].unk9 + 1) % 256;
|
||||
}
|
||||
|
||||
static bool32 ValidateTrainerTowerTrainer(struct TrainerTowerFloor * floor)
|
||||
{
|
||||
if (floor->floorIdx < 1 || floor->floorIdx > 8)
|
||||
if (floor->floorIdx < 1 || floor->floorIdx > MAX_TRAINER_TOWER_FLOORS)
|
||||
return FALSE;
|
||||
if (floor->challengeType > 2)
|
||||
if (floor->challengeType > CHALLENGE_TYPE_KNOCKOUT)
|
||||
return FALSE;
|
||||
if (CalcByteArraySum((const u8 *)floor, offsetof(typeof(*floor), checksum)) != floor->checksum)
|
||||
return FALSE;
|
||||
@@ -22,16 +22,16 @@ static bool32 ValidateTrainerTowerTrainer(struct TrainerTowerFloor * floor)
|
||||
|
||||
bool32 ValidateTrainerTowerData(struct EReaderTrainerHillSet * ttdata)
|
||||
{
|
||||
u32 count = ttdata->count;
|
||||
u32 numFloors = ttdata->numFloors;
|
||||
s32 i;
|
||||
if (count < 1 || count > 8)
|
||||
if (numFloors < 1 || numFloors > MAX_TRAINER_TOWER_FLOORS)
|
||||
return FALSE;
|
||||
for (i = 0; i < count; i++)
|
||||
for (i = 0; i < numFloors; i++)
|
||||
{
|
||||
if (!ValidateTrainerTowerTrainer(&ttdata->floors[i]))
|
||||
return FALSE;
|
||||
}
|
||||
if (CalcByteArraySum((const u8 *)ttdata->floors, count * sizeof(ttdata->floors[0])) != ttdata->checksum)
|
||||
if (CalcByteArraySum((const u8 *)ttdata->floors, numFloors * sizeof(ttdata->floors[0])) != ttdata->checksum)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+23
-23
@@ -876,22 +876,22 @@ void Special_GetElevatorFloor(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_1F))
|
||||
if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(TRAINER_TOWER_1F))
|
||||
{
|
||||
switch (gSaveBlock1Ptr->warp2.mapNum)
|
||||
{
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_1F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_2F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_3F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_4F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_5F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_6F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_7F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_8F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ROOF):
|
||||
case MAP_NUM(TRAINER_TOWER_1F):
|
||||
case MAP_NUM(TRAINER_TOWER_2F):
|
||||
case MAP_NUM(TRAINER_TOWER_3F):
|
||||
case MAP_NUM(TRAINER_TOWER_4F):
|
||||
case MAP_NUM(TRAINER_TOWER_5F):
|
||||
case MAP_NUM(TRAINER_TOWER_6F):
|
||||
case MAP_NUM(TRAINER_TOWER_7F):
|
||||
case MAP_NUM(TRAINER_TOWER_8F):
|
||||
case MAP_NUM(TRAINER_TOWER_ROOF):
|
||||
floor = 15;
|
||||
break;
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY):
|
||||
case MAP_NUM(TRAINER_TOWER_LOBBY):
|
||||
floor = 3;
|
||||
break;
|
||||
}
|
||||
@@ -992,23 +992,23 @@ u16 Special_InitElevatorFloorSelectMenuPos(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_1F))
|
||||
if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(TRAINER_TOWER_1F))
|
||||
{
|
||||
switch (gSaveBlock1Ptr->warp2.mapNum)
|
||||
{
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_1F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_2F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_3F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_4F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_5F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_6F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_7F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_8F):
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ROOF):
|
||||
case MAP_NUM(TRAINER_TOWER_1F):
|
||||
case MAP_NUM(TRAINER_TOWER_2F):
|
||||
case MAP_NUM(TRAINER_TOWER_3F):
|
||||
case MAP_NUM(TRAINER_TOWER_4F):
|
||||
case MAP_NUM(TRAINER_TOWER_5F):
|
||||
case MAP_NUM(TRAINER_TOWER_6F):
|
||||
case MAP_NUM(TRAINER_TOWER_7F):
|
||||
case MAP_NUM(TRAINER_TOWER_8F):
|
||||
case MAP_NUM(TRAINER_TOWER_ROOF):
|
||||
sElevatorScroll = 0;
|
||||
sElevatorCursorPos = 0;
|
||||
break;
|
||||
case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY):
|
||||
case MAP_NUM(TRAINER_TOWER_LOBBY):
|
||||
sElevatorScroll = 0;
|
||||
sElevatorCursorPos = 1;
|
||||
break;
|
||||
@@ -2436,7 +2436,7 @@ bool8 Special_BadEggInParty(void)
|
||||
|
||||
bool8 Special_PlayerIsNotInTrainerTowerLobby(void)
|
||||
{
|
||||
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_LOBBY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY))
|
||||
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_TOWER_LOBBY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_LOBBY))
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
|
||||
+4
-4
@@ -124,13 +124,13 @@ void SetBlackoutRespawnWarpAndHealerNpc(struct WarpData * warp)
|
||||
|
||||
if (VarGet(VAR_MAP_SCENE_TRAINER_TOWER) == 1)
|
||||
{
|
||||
if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2)
|
||||
if (!gSaveBlock1Ptr->trainerTower[gSaveBlock1Ptr->towerChallengeId].spokeToOwner)
|
||||
VarSet(VAR_MAP_SCENE_TRAINER_TOWER, 0);
|
||||
gSpecialVar_LastTalked = 1;
|
||||
warp->x = 4;
|
||||
warp->y = 11;
|
||||
warp->mapGroup = MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_LOBBY);
|
||||
warp->mapNum = MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY);
|
||||
warp->mapGroup = MAP_GROUP(TRAINER_TOWER_LOBBY);
|
||||
warp->mapNum = MAP_NUM(TRAINER_TOWER_LOBBY);
|
||||
warp->warpId = 0xFF;
|
||||
}
|
||||
else
|
||||
@@ -155,7 +155,7 @@ void SetBlackoutRespawnWarpAndHealerNpc(struct WarpData * warp)
|
||||
warp->x = 5;
|
||||
warp->y = 4;
|
||||
}
|
||||
else if (sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0] == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_LOBBY) && sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1] == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY))
|
||||
else if (sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0] == MAP_GROUP(TRAINER_TOWER_LOBBY) && sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1] == MAP_NUM(TRAINER_TOWER_LOBBY))
|
||||
{
|
||||
warp->x = 4;
|
||||
warp->y = 11;
|
||||
|
||||
+2
-2
@@ -284,8 +284,8 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < 4; i++)
|
||||
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i].unk4, encryptionKey);
|
||||
for(i = 0; i < NUM_TOWER_CHALLENGE_TYPES; i++)
|
||||
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->trainerTower[i].bestTime, encryptionKey);
|
||||
|
||||
sub_8054F38(encryptionKey);
|
||||
ApplyNewEncryptionKeyToBagItems_(encryptionKey);
|
||||
|
||||
+13
-13
@@ -2602,18 +2602,18 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
static bool8 InQuestLogDisabledLocation(void)
|
||||
{
|
||||
// In Trainer Tower
|
||||
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_1F)
|
||||
&& (gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_1F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_2F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_3F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_4F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_5F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_6F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_7F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_8F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ROOF)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR)))
|
||||
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_TOWER_1F)
|
||||
&& (gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_1F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_2F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_3F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_4F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_5F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_6F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_7F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_8F)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_ROOF)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_LOBBY)
|
||||
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_ELEVATOR)))
|
||||
return TRUE;
|
||||
|
||||
// In pokemon trainer fan club
|
||||
@@ -2629,7 +2629,7 @@ static bool8 InQuestLogDisabledLocation(void)
|
||||
// In elevator
|
||||
if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROCKET_HIDEOUT_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROCKET_HIDEOUT_ELEVATOR))
|
||||
|| (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SILPH_CO_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SILPH_CO_ELEVATOR))
|
||||
|| (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR))
|
||||
|| (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_TOWER_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_TOWER_ELEVATOR))
|
||||
|| (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_ELEVATOR)))
|
||||
return TRUE;
|
||||
|
||||
|
||||
+1
-1
@@ -3420,7 +3420,7 @@ static u8 sub_80C3878(u8 mapsec)
|
||||
case MAPSEC_ROCKET_WAREHOUSE:
|
||||
return FlagGet(FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE) ? 2 : 3;
|
||||
case MAPSEC_TRAINER_TOWER_2:
|
||||
return FlagGet(FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY) ? 2 : 3;
|
||||
return FlagGet(FLAG_WORLD_MAP_TRAINER_TOWER_LOBBY) ? 2 : 3;
|
||||
case MAPSEC_DOTTED_HOLE:
|
||||
return FlagGet(FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F) ? 2 : 3;
|
||||
case MAPSEC_LOST_CAVE:
|
||||
|
||||
@@ -529,9 +529,9 @@ static const struct RenewableHiddenItemData sRenewableHiddenItems[] = {
|
||||
},
|
||||
};
|
||||
|
||||
bool32 sub_815D834(void)
|
||||
bool32 ReadTrainerHillAndValidate(void)
|
||||
{
|
||||
// Stubbed out?
|
||||
// Stubbed out. Populated in Emerald
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
+329
-307
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user