Merge branch 'master' into lilycove_lady

This commit is contained in:
PikalaxALT
2017-09-20 23:02:17 -04:00
98 changed files with 11101 additions and 3739 deletions

430
src/battle_dome_cards.c Normal file
View File

@@ -0,0 +1,430 @@
// Includes
#include "global.h"
#include "sprite.h"
#include "window.h"
#include "malloc.h"
#include "species.h"
#include "palette.h"
#include "decompress.h"
#include "battle_dome_cards.h"
extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES];
extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES];
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
extern const struct CompressedSpriteSheet gTrainerBackPicTable[];
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const union AffineAnimCmd *const gUnknown_082FF618[];
extern const union AffineAnimCmd *const gUnknown_082FF694[];
extern const union AnimCmd *const gUnknown_082FF70C[];
extern const union AnimCmd *const *const gUnknown_08309AAC[NUM_SPECIES];
extern const union AnimCmd *const *const gUnknown_0830536C[];
extern const u8 gUnknown_0831F578[];
// Static type declarations
struct BattleDomeCard {
u8 *frames;
struct SpriteFrameImage *images;
u16 paletteTag;
u8 spriteId;
u8 active;
};
// Static RAM declarations
static EWRAM_DATA struct SpriteTemplate gUnknown_0203CCEC = {};
static EWRAM_DATA struct BattleDomeCard gUnknown_0203CD04[8] = {};
// Static ROM declarations
// .rodata
static const struct BattleDomeCard gUnknown_0860B058 = {};
static const struct OamData gUnknown_0860B064 = {
.size = 3
};
static const struct OamData gUnknown_0860B06C = {
.affineMode = 1, .size = 3
};
// .text
static void nullsub_122(struct Sprite *sprite)
{
}
bool16 dp13_810BB8C(void)
{
int i;
for (i = 0; i < 8; i ++)
{
gUnknown_0203CD04[i] = gUnknown_0860B058;
}
return FALSE;
}
static bool16 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
{
if (!isTrainer)
{
if (isFrontPic)
{
if (!ignoreDeoxys)
{
LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
}
else
{
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
}
}
else
{
if (!ignoreDeoxys)
{
LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
}
else
{
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
}
}
}
else
{
if (isFrontPic)
{
DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species);
}
else
{
DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species);
}
}
return FALSE;
}
static bool16 sub_818D09C(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
{
return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE);
}
static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
{
if (!isTrainer)
{
if (paletteTag == 0xFFFF)
{
gUnknown_0203CCEC.paletteTag |= 0xFFFF;
LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
}
else
{
gUnknown_0203CCEC.paletteTag = paletteTag;
LoadCompressedObjectPalette(sub_806E7CC(species, otId, personality));
}
}
else
{
if (paletteTag == 0xFFFF)
{
gUnknown_0203CCEC.paletteTag |= 0xFFFF;
LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20);
}
else
{
gUnknown_0203CCEC.paletteTag = paletteTag;
LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
}
}
}
static void sub_818D180(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)
{
if (!isTrainer)
{
LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), paletteSlot * 0x10, 0x20);
}
else
{
LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20);
}
}
static void uns_builder_assign_animtable1(bool8 isTrainer)
{
if (!isTrainer)
{
gUnknown_0203CCEC.anims = gUnknown_082FF70C;
}
else
{
gUnknown_0203CCEC.anims = gUnknown_0830536C[0];
}
}
static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
{
u8 i;
u8 *framePics;
struct SpriteFrameImage *images;
int j;
u8 spriteId;
for (i = 0; i < 8; i ++)
{
if (!gUnknown_0203CD04[i].active)
{
break;
}
}
if (i == 8)
{
return 0xFFFF;
}
framePics = Alloc(4 * 0x800);
if (!framePics)
{
return 0xFFFF;
}
images = Alloc(4 * sizeof(struct SpriteFrameImage));
if (!images)
{
Free(framePics);
return 0xFFFF;
}
if (load_pokemon_image_TODO(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
{
// debug trap?
return 0xFFFF;
}
for (j = 0; j < 4; j ++)
{
images[j].data = framePics + 0x800 * j;
images[j].size = 0x800;
}
gUnknown_0203CCEC.tileTag = 0xFFFF;
gUnknown_0203CCEC.oam = &gUnknown_0860B064;
uns_builder_assign_animtable1(isTrainer);
gUnknown_0203CCEC.images = images;
gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable;
gUnknown_0203CCEC.callback = nullsub_122;
sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, isTrainer);
spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0);
if (paletteTag == 0xFFFF)
{
gSprites[spriteId].oam.paletteNum = paletteSlot;
}
gUnknown_0203CD04[i].frames = framePics;
gUnknown_0203CD04[i].images = images;
gUnknown_0203CD04[i].paletteTag = paletteTag;
gUnknown_0203CD04[i].spriteId = spriteId;
gUnknown_0203CD04[i].active = TRUE;
return spriteId;
}
static u16 sub_818D384(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
{
return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
}
u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
u8 *framePics;
struct SpriteFrameImage *images;
int j;
u8 i;
u8 spriteId;
u8 flags2;
for (i = 0; i < 8; i ++)
{
if (!gUnknown_0203CD04[i].active)
{
break;
}
}
if (i == 8)
{
return 0xFFFF;
}
framePics = Alloc(4 * 0x800);
if (!framePics)
{
return 0xFFFF;
}
if (flags & 0x80)
{
flags &= 0x7F;
flags2 = 3;
}
else
{
flags2 = flags;
}
images = Alloc(4 * sizeof(struct SpriteFrameImage));
if (!images)
{
Free(framePics);
return 0xFFFF;
}
if (load_pokemon_image_TODO(species, personality, flags, framePics, FALSE, FALSE))
{
// debug trap?
return 0xFFFF;
}
for (j = 0; j < 4; j ++)
{
images[j].data = framePics + 0x800 * j;
images[j].size = 0x800;
}
gUnknown_0203CCEC.tileTag = 0xFFFF;
gUnknown_0203CCEC.anims = gUnknown_08309AAC[species];
gUnknown_0203CCEC.images = images;
if (flags2 == 0x01)
{
gUnknown_0203CCEC.affineAnims = gUnknown_082FF694;
gUnknown_0203CCEC.oam = &gUnknown_0860B06C;
}
else if (flags2 == 0x00)
{
gUnknown_0203CCEC.affineAnims = gUnknown_082FF618;
gUnknown_0203CCEC.oam = &gUnknown_0860B06C;
}
else
{
gUnknown_0203CCEC.oam = &gUnknown_0860B064;
gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable;
}
gUnknown_0203CCEC.callback = nullsub_122;
sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, FALSE);
spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0);
if (paletteTag == 0xFFFF)
{
gSprites[spriteId].oam.paletteNum = paletteSlot;
}
gUnknown_0203CD04[i].frames = framePics;
gUnknown_0203CD04[i].images = images;
gUnknown_0203CD04[i].paletteTag = paletteTag;
gUnknown_0203CD04[i].spriteId = spriteId;
gUnknown_0203CD04[i].active = TRUE;
return spriteId;
}
static u16 sub_818D5B0(u16 spriteId)
{
u8 i;
u8 *framePics;
struct SpriteFrameImage *images;
for (i = 0; i < 8; i ++)
{
if (gUnknown_0203CD04[i].spriteId == spriteId)
{
break;
}
}
if (i == 8)
{
return 0xFFFF;
}
framePics = gUnknown_0203CD04[i].frames;
images = gUnknown_0203CD04[i].images;
if (gUnknown_0203CD04[i].paletteTag != 0xFFFF)
{
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
}
DestroySprite(&gSprites[spriteId]);
Free(framePics);
Free(images);
gUnknown_0203CD04[i] = gUnknown_0860B058;
return 0;
}
static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer)
{
if (sub_818D09C(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
{
return 0xFFFF;
}
sub_818D180(species, otId, personality, paletteSlot, isTrainer);
return 0;
}
static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer)
{
u8 *framePics;
framePics = Alloc(4 * 0x800);
if (framePics && !sub_818D09C(species, personality, isFrontPic, framePics, isTrainer))
{
BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40);
sub_818D180(species, otId, personality, paletteSlot, isTrainer);
Free(framePics);
return 0;
}
return 0xFFFF;
}
static u16 sub_818D778(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
{
return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
}
u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
return sub_818D778(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
}
u16 sub_818D820(u16 spriteId)
{
return sub_818D5B0(spriteId);
}
u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
{
return sub_818D65C(species, otId, personality, isFrontPic, paletteSlot, windowId, FALSE);
}
u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId)
{
return sub_818D6CC(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE);
}
u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
return sub_818D384(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
}
u16 sub_818D8F0(u16 spriteId)
{
return sub_818D5B0(spriteId);
}
u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
{
return sub_818D65C(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE);
}
u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId)
{
return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE);
}
u8 sub_818D97C(u8 a0, u8 a1)
{
if (a1 == 1)
{
switch (a0)
{
default:
return gUnknown_0831F578[0x3F];
case 0:
return gUnknown_0831F578[0x3C];
}
}
return a0;
}

View File

@@ -8,9 +8,9 @@
extern void ApplyNewEncyprtionKeyToHword(u16* hword, u32 newKey);
extern bool8 InBattlePyramid(void);
extern const u8 gOtherText_PokeBalls[];
extern const u8 gOtherText_Berries[];
extern const u8 gOtherText_Berry[];
extern const u8 gText_PokeBalls[];
extern const u8 gText_Berries[];
extern const u8 gText_Berry[];
extern const u8 gUnknown_085897E4[][28]; // not sure what this one is
bool8 CheckPyramidBagHasItem(u16 itemId, u16 count);
@@ -92,7 +92,7 @@ void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity)
if (quantity < 2)
StringCopy(string, ItemId_GetItem(ITEM_POKE_BALL)->name);
else
StringCopy(string, gOtherText_PokeBalls);
StringCopy(string, gText_PokeBalls);
}
else
{
@@ -109,9 +109,9 @@ void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity)
u8* txtPtr;
if (quantity < 2)
berryString = gOtherText_Berry;
berryString = gText_Berry;
else
berryString = gOtherText_Berries;
berryString = gText_Berries;
txtPtr = StringCopy(dst, berryName);
*txtPtr = CHAR_SPACE;
StringCopy(txtPtr + 1, berryString);

View File

@@ -27,7 +27,7 @@ static u8 sub_818E13C(void);
static bool8 sub_818E1F4(void);
static u8 sub_818E258(const u8 *);
extern const u8 gUnknown_085EEB7E[]; // Lady$
extern const u8 gText_Lady2[];
static const u16 gUnknown_0860B074[] = {
0x62, 0xcb, 0xdc, 0xcc, 0xd1
@@ -617,7 +617,7 @@ static u8 sub_818E13C(void)
gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz;
if (gUnknown_0203CD68->playerName[0] == EOS)
{
StringCopy7(gStringVar1, gUnknown_085EEB7E);
StringCopy7(gStringVar1, gText_Lady2);
retval = 0;
}
else
@@ -655,7 +655,7 @@ __attribute__((naked)) static u8 sub_818E13C(void)
"\tcmp r0, 0xFF\n"
"\tbne _0818E174\n"
"\tldr r0, =gStringVar1\n"
"\tldr r1, =gUnknown_085EEB7E\n"
"\tldr r1, =gText_Lady2\n"
"\tbl StringCopy7\n"
"\tmovs r7, 0\n"
"\tb _0818E1DC\n"

View File

@@ -31,7 +31,7 @@ extern const union AnimCmd* gUnknown_082FF70C[];
extern const union AnimCmd* const * const gUnknown_08309AAC[];
extern const union AnimCmd* const * const gUnknown_08305D0C[];
extern const union AnimCmd* const * const gUnknown_0830536C[];
extern const u8 gBadEggNickname[];
extern const u8 gText_BadEgg[];
extern const u8 gText_EggNickname[];
extern u8 GetBankSide(u8 bank);
@@ -409,8 +409,8 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
if (boxMon->isBadEgg)
{
for (retVal = 0;
retVal < POKEMON_NAME_LENGTH && gBadEggNickname[retVal] != EOS;
data[retVal] = gBadEggNickname[retVal], retVal++) {}
retVal < POKEMON_NAME_LENGTH && gText_BadEgg[retVal] != EOS;
data[retVal] = gText_BadEgg[retVal], retVal++) {}
data[retVal] = EOS;
}

View File

@@ -46,16 +46,16 @@ extern const struct SpindaSpot gSpindaSpotGraphics[];
extern const u8* const gStatNamesTable[];
extern const u8 gSpeciesNames[][11];
extern const u8 gUnknown_08329EC8[];
extern const u8 gUnknown_085CB38A[];
extern const u8 gUnknown_085CB3AA[];
extern const u8 gUnknown_085CA459[];
extern const u8 gUnknown_085CA424[];
extern const u8 gText_StatRose[];
extern const u8 gText_PkmnsStatChanged2[];
extern const u8 gText_PkmnGettingPumped[];
extern const u8 gText_PkmnShroudedInMist[];
extern const s8 gNatureStatTable[][5];
extern const s8 gUnknown_08329ECE[][3];
extern const u32 gBitTable[];
extern const u32 gTMHMLearnsets[][2];
extern const u8 BattleText_Wally[];
extern const u8 BattleText_PreventedSwitch[];
extern const u8 gText_BattleWallyName[];
extern const u8 gText_PkmnsXPreventsSwitching[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const u16 gHMMoves[];
@@ -215,8 +215,8 @@ void sub_806CF24(s32 stat)
{
gBankTarget = gBankInMenu;
StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]);
StringCopy(gBattleTextBuff2, gUnknown_085CB38A);
StrCpyDecodeToDisplayedStringBattle(gUnknown_085CB3AA);
StringCopy(gBattleTextBuff2, gText_StatRose);
StrCpyDecodeToDisplayedStringBattle(gText_PkmnsStatChanged2);
}
u8 *sub_806CF78(u16 itemId)
@@ -251,7 +251,7 @@ u8 *sub_806CF78(u16 itemId)
else
{
gBankAttacker = gBankInMenu;
StrCpyDecodeToDisplayedStringBattle(gUnknown_085CA459);
StrCpyDecodeToDisplayedStringBattle(gText_PkmnGettingPumped);
}
}
}
@@ -259,7 +259,7 @@ u8 *sub_806CF78(u16 itemId)
if (itemEffect[3] & 0x80)
{
gBankAttacker = gBankInMenu;
StrCpyDecodeToDisplayedStringBattle(gUnknown_085CA424);
StrCpyDecodeToDisplayedStringBattle(gText_PkmnShroudedInMist);
}
return gDisplayedStringBattle;
@@ -1177,7 +1177,7 @@ u16 GetBattleBGM(void)
case CLASS_PKMN_TRAINER_RIVAL:
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
return 0x1E1;
if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, BattleText_Wally))
if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, gText_BattleWallyName))
return 0x1DC;
return 0x1E1;
case CLASS_ELITE_FOUR:
@@ -1374,7 +1374,7 @@ void sub_806E994(void)
gBattleTextBuff2[2] = gBankInMenu;
gBattleTextBuff2[3] = pokemon_order_func(gBattlePartyID[gBankInMenu]);
gBattleTextBuff2[4] = EOS;
StrCpyDecodeBattle(BattleText_PreventedSwitch, gStringVar4);
StrCpyDecodeBattle(gText_PkmnsXPreventsSwitching, gStringVar4);
}
struct PokeItem

View File

@@ -45,8 +45,8 @@ static const u8 sGiftRibbonsMonDataIds[] =
MON_DATA_GIFT_RIBBON_7
};
extern const u8 gOtherText_DecimalPoint[];
extern const u8 gOtherText_Marco[];
extern const u8 gText_DecimalPoint[];
extern const u8 gText_Marco[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
#define CM_PER_INCH 2.54
@@ -103,7 +103,7 @@ static void FormatMonSizeRecord(u8 *string, u32 size)
#endif
string = ConvertIntToDecimalStringN(string, size / 10, 0, 8);
string = StringAppend(string, gOtherText_DecimalPoint);
string = StringAppend(string, gText_DecimalPoint);
ConvertIntToDecimalStringN(string, size % 10, 0, 1);
}
@@ -152,7 +152,7 @@ static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord)
FormatMonSizeRecord(gStringVar3, size);
StringCopy(gStringVar1, gSpeciesNames[species]);
if (*sizeRecord == DEFAULT_MAX_SIZE)
StringCopy(gStringVar2, gOtherText_Marco);
StringCopy(gStringVar2, gText_Marco);
else
StringCopy(gStringVar2, gSaveBlock2Ptr->playerName);
}

View File

@@ -151,7 +151,7 @@ static void BuildStartMenuActions_MultiBattleRoom(void)
extern const struct WindowTemplate gSafariBallsWindowTemplate;
extern const struct WindowTemplate gPyramidFloorWindowTemplate_1;
extern const struct WindowTemplate gPyramidFloorWindowTemplate_2;
extern const u8 gOtherText_SafariStock[];
extern const u8 gText_SafariBallStock[];
void DisplaySafariBallsWindow(void)
{
@@ -159,13 +159,13 @@ void DisplaySafariBallsWindow(void)
PutWindowTilemap(sSafariBallsWindowId);
sub_81973FC(sSafariBallsWindowId, 0);
ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringExpandPlaceholders(gStringVar4, gOtherText_SafariStock);
StringExpandPlaceholders(gStringVar4, gText_SafariBallStock);
PrintTextOnWindow(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
CopyWindowToVram(sSafariBallsWindowId, 2);
}
extern const u8* const gUnknown_08510510[];
extern const u8 gOtherText_BattlePyramid_X[];
extern const u8 gText_BattlePyramidFloor[];
void DisplayPyramidFloorWindow(void)
{
@@ -177,7 +177,7 @@ void DisplayPyramidFloorWindow(void)
PutWindowTilemap(sBattlePyramidFloorWindowId);
sub_81973FC(sBattlePyramidFloorWindowId, 0);
StringCopy(gStringVar1, gUnknown_08510510[*(u16*)(&gSaveBlock2Ptr->field_CAA[8])]);
StringExpandPlaceholders(gStringVar4, gOtherText_BattlePyramid_X);
StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor);
PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
CopyWindowToVram(sBattlePyramidFloorWindowId, 2);
}