Merge remote-tracking branch 'Egg/decompile_use_pokeblock'
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "reshow_battle_screen.h"
|
||||
#include "pokeball.h"
|
||||
#include "data2.h"
|
||||
#include "pokeblock.h"
|
||||
|
||||
extern u32 gBattleExecBuffer;
|
||||
extern u8 gActiveBank;
|
||||
@@ -291,13 +292,13 @@ static void CompleteOnSpecialAnimDone(void)
|
||||
SafariBufferExecCompleted();
|
||||
}
|
||||
|
||||
static void OpenPokeblockCase(void)
|
||||
static void SafariOpenPokeblockCase(void)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
gBattleBankFunc[gActiveBank] = CompleteWhenChosePokeblock;
|
||||
FreeAllWindowBuffers();
|
||||
sub_81358F4();
|
||||
OpenPokeblockCaseInBattle();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -497,7 +498,7 @@ static void SafariHandleChooseItem(void)
|
||||
s32 i;
|
||||
|
||||
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
|
||||
gBattleBankFunc[gActiveBank] = OpenPokeblockCase;
|
||||
gBattleBankFunc[gActiveBank] = SafariOpenPokeblockCase;
|
||||
gBankInMenu = gActiveBank;
|
||||
}
|
||||
|
||||
|
||||
@@ -177,7 +177,6 @@ extern const u16 gBattleInterface_BallDisplayPal[];
|
||||
extern const u8 gHealthboxElementsGfxTable[][32];
|
||||
|
||||
// functions
|
||||
extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str); // menu.h
|
||||
extern void LoadBattleBarGfx(u8 arg0);
|
||||
|
||||
// this file's functions
|
||||
|
||||
@@ -134,8 +134,6 @@ extern u8 gInGameOpponentsNo;
|
||||
extern u8 gUnknown_020322D5;
|
||||
extern u8 gResultsWindowId;
|
||||
|
||||
extern const u8 * const gPokeblockNames[];
|
||||
|
||||
// graphics
|
||||
extern const u8 gBerryBlenderArrowTiles[];
|
||||
extern const u8 gBerryBlenderStartTiles[];
|
||||
|
||||
@@ -40,7 +40,7 @@ extern const u8 gDaycareText_PlayOther[];
|
||||
|
||||
extern u8 GetCursorSelectionMonId(void);
|
||||
extern u16 ItemIdToBattleMoveId(u16);
|
||||
extern s32 ListMenuHandleInput(u8);
|
||||
extern s32 ListMenuHandleInputGetItemId(u8);
|
||||
extern void sub_81AE6C8(u8, u16*, u16*);
|
||||
extern void sub_819746C(u8, bool8);
|
||||
extern void sub_81973FC(u8, bool8);
|
||||
@@ -75,7 +75,7 @@ static const struct ListMenuItem sLevelMenuItems[] =
|
||||
static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
|
||||
{
|
||||
.items = sLevelMenuItems,
|
||||
.unk_04 = sub_81AF078,
|
||||
.moveCursorFunc = sub_81AF078,
|
||||
.unk_08 = DaycarePrintMonInfo,
|
||||
.totalItems = 3,
|
||||
.maxShowed = 3,
|
||||
@@ -90,7 +90,8 @@ static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
|
||||
.unk_16_0 = TRUE,
|
||||
.spaceBetweenItems = 0,
|
||||
.unk_16_7 = FALSE,
|
||||
.unk_17_0 = 1
|
||||
.unk_17_0 = 1,
|
||||
.cursorKind = 0
|
||||
};
|
||||
|
||||
static const u8 *const sCompatibilityMessages[] =
|
||||
@@ -1256,7 +1257,7 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y)
|
||||
|
||||
static void Task_HandleDaycareLevelMenuInput(u8 taskId)
|
||||
{
|
||||
u32 var = ListMenuHandleInput(gTasks[taskId].tMenuListTaskId);
|
||||
u32 var = ListMenuHandleInputGetItemId(gTasks[taskId].tMenuListTaskId);
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
|
||||
@@ -792,17 +792,17 @@ void sub_8127330(u8 taskId)
|
||||
for (i = 0; i < sDecorPCBuffer->unk_520 - 1; i ++)
|
||||
{
|
||||
sub_8127454(sDecorPCBuffer->names[i], gCurDecorInventoryItems[i]);
|
||||
sDecorPCBuffer->items[i].unk_00 = sDecorPCBuffer->names[i];
|
||||
sDecorPCBuffer->items[i].unk_04 = i;
|
||||
sDecorPCBuffer->items[i].name = sDecorPCBuffer->names[i];
|
||||
sDecorPCBuffer->items[i].id = i;
|
||||
}
|
||||
StringCopy(sDecorPCBuffer->names[i], gText_Cancel);
|
||||
sDecorPCBuffer->items[i].unk_00 = sDecorPCBuffer->names[i];
|
||||
sDecorPCBuffer->items[i].unk_04 = -2;
|
||||
gUnknown_03006310 = gUnknown_085A6BD0;
|
||||
gUnknown_03006310.unk_10 = sDecorMenuWindowIndices[1];
|
||||
gUnknown_03006310.totalItems = sDecorPCBuffer->unk_520;
|
||||
gUnknown_03006310.items = sDecorPCBuffer->items;
|
||||
gUnknown_03006310.maxShowed = sDecorPCBuffer->unk_521;
|
||||
sDecorPCBuffer->items[i].name = sDecorPCBuffer->names[i];
|
||||
sDecorPCBuffer->items[i].id = -2;
|
||||
gMultiuseListMenuTemplate = gUnknown_085A6BD0;
|
||||
gMultiuseListMenuTemplate.unk_10 = sDecorMenuWindowIndices[1];
|
||||
gMultiuseListMenuTemplate.totalItems = sDecorPCBuffer->unk_520;
|
||||
gMultiuseListMenuTemplate.items = sDecorPCBuffer->items;
|
||||
gMultiuseListMenuTemplate.maxShowed = sDecorPCBuffer->unk_521;
|
||||
}
|
||||
|
||||
void sub_8127454(u8 *dest, u16 decorId)
|
||||
@@ -871,7 +871,7 @@ void sub_812759C(u8 taskId)
|
||||
sub_81272C8();
|
||||
sub_81272F8();
|
||||
sub_8127330(taskId);
|
||||
data[13] = ListMenuInit(&gUnknown_03006310, sSecretBasePCSelectDecorPageNo, sSecretBasePCSelectDecorLineNo);
|
||||
data[13] = ListMenuInit(&gMultiuseListMenuTemplate, sSecretBasePCSelectDecorPageNo, sSecretBasePCSelectDecorLineNo);
|
||||
sub_8127500();
|
||||
}
|
||||
|
||||
@@ -889,8 +889,8 @@ void sub_812764C(u8 taskId)
|
||||
data = gTasks[taskId].data;
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
input = ListMenuHandleInput(data[13]);
|
||||
get_coro_args_x18_x1A(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo);
|
||||
input = ListMenuHandleInputGetItemId(data[13]);
|
||||
sub_81AE860(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo);
|
||||
switch (input)
|
||||
{
|
||||
case -1:
|
||||
|
||||
@@ -943,7 +943,7 @@ static void sub_818E6B0(u8 sheen)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_818E704(struct Pokeblock *pokeblock)
|
||||
bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock)
|
||||
{
|
||||
u8 sheen;
|
||||
bool8 response;
|
||||
@@ -1079,7 +1079,7 @@ void sub_818E914(void)
|
||||
|
||||
void sub_818E92C(void)
|
||||
{
|
||||
sub_81357FC(3, c2_exit_to_overworld_2_switch);
|
||||
OpenPokeblockCase(3, c2_exit_to_overworld_2_switch);
|
||||
}
|
||||
|
||||
void sub_818E940(void)
|
||||
|
||||
@@ -33,7 +33,6 @@ extern void Overworld_SetWarpDestination(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPo
|
||||
extern void warp_in(void);
|
||||
extern void sub_80BB358(void);
|
||||
extern void ResetBagScrollPositions(void);
|
||||
extern void sub_813624C(void); // clears something pokeblock related
|
||||
extern void ResetPokedex(void);
|
||||
extern void sub_8084400(void);
|
||||
extern void ClearMailData(void);
|
||||
@@ -148,7 +147,7 @@ void sub_808447C(void)
|
||||
ZeroPlayerPartyMons();
|
||||
ZeroEnemyPartyMons();
|
||||
ResetBagScrollPositions();
|
||||
sub_813624C();
|
||||
ResetPokeblockScrollPositions();
|
||||
}
|
||||
|
||||
void NewGameInitData(void)
|
||||
|
||||
1337
src/pokeblock.c
Normal file
1337
src/pokeblock.c
Normal file
File diff suppressed because it is too large
Load Diff
1108
src/pokeblock_feed.c
Normal file
1108
src/pokeblock_feed.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -21,6 +21,7 @@
|
||||
#include "constants/abilities.h"
|
||||
#include "pokemon_animation.h"
|
||||
#include "pokedex.h"
|
||||
#include "pokeblock.h"
|
||||
|
||||
extern struct BattlePokemon gBattleMons[4];
|
||||
extern struct BattleEnigmaBerry gEnigmaBerries[4];
|
||||
@@ -58,7 +59,6 @@ extern const u8 gText_PkmnsXPreventsSwitching[];
|
||||
extern const struct CompressedSpritePalette gMonPaletteTable[];
|
||||
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
|
||||
extern const u16 gHMMoves[];
|
||||
extern const s8 gPokeblockFlavorCompatibilityTable[];
|
||||
extern const u8 gMonAnimationDelayTable[];
|
||||
extern const u8 gMonFrontAnimIdsTable[];
|
||||
|
||||
@@ -1298,21 +1298,21 @@ bool8 IsPokeSpriteNotFlipped(u16 species)
|
||||
return gBaseStats[species].noFlip;
|
||||
}
|
||||
|
||||
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2)
|
||||
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor)
|
||||
{
|
||||
u8 nature = GetNature(mon);
|
||||
return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
|
||||
return gPokeblockFlavorCompatibilityTable[nature * 5 + flavor];
|
||||
}
|
||||
|
||||
s8 GetFlavorRelationByPersonality(u32 personality, u8 a2)
|
||||
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor)
|
||||
{
|
||||
u8 nature = GetNatureFromPersonality(personality);
|
||||
return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
|
||||
return gPokeblockFlavorCompatibilityTable[nature * 5 + flavor];
|
||||
}
|
||||
|
||||
bool8 IsTradedMon(struct Pokemon *mon)
|
||||
{
|
||||
u8 otName[8];
|
||||
u8 otName[OT_NAME_LENGTH + 1];
|
||||
u32 otId;
|
||||
GetMonData(mon, MON_DATA_OT_NAME, otName);
|
||||
otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
|
||||
@@ -73,7 +73,7 @@ extern void do_scheduled_bg_tilemap_copies_to_vram(void);
|
||||
extern u8 sub_81221EC();
|
||||
extern u8 sub_81221AC();
|
||||
extern void SetVBlankHBlankCallbacksToNull();
|
||||
extern void sub_8121DA0();
|
||||
extern void ResetVramOamAndBgCntRegs();
|
||||
extern void clear_scheduled_bg_copies_to_vram();
|
||||
extern void remove_some_task();
|
||||
extern void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
|
||||
@@ -193,7 +193,7 @@ void sub_81C4A88();
|
||||
void sub_81C4280();
|
||||
void sub_81C0510(u8 taskId);
|
||||
void sub_81C171C(u8 taskId);
|
||||
void sub_8121E10();
|
||||
void ResetAllBgsCoordinates();
|
||||
u8 sub_81B205C(struct Pokemon* a);
|
||||
void sub_81C1DA4(u16 a, s16 b);
|
||||
void sub_81C1EFC(u16 a, s16 b, u16 c);
|
||||
@@ -450,7 +450,7 @@ bool8 sub_81BFB10(void)
|
||||
{
|
||||
case 0:
|
||||
SetVBlankHBlankCallbacksToNull();
|
||||
sub_8121DA0();
|
||||
ResetVramOamAndBgCntRegs();
|
||||
clear_scheduled_bg_copies_to_vram();
|
||||
gMain.state++;
|
||||
break;
|
||||
@@ -578,7 +578,7 @@ void sub_81BFE24()
|
||||
SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap2);
|
||||
SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap1);
|
||||
SetBgTilemapBuffer(3, &gUnknown_0203CF1C->unkTilemap0);
|
||||
sub_8121E10();
|
||||
ResetAllBgsCoordinates();
|
||||
schedule_bg_copy_tilemap_to_vram(1);
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
schedule_bg_copy_tilemap_to_vram(3);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "main.h"
|
||||
#include "battle.h"
|
||||
#include "string_util.h"
|
||||
#include "pokeblock.h"
|
||||
|
||||
struct PokeblockFeeder
|
||||
{
|
||||
@@ -24,7 +25,6 @@ extern u8 EventScript_2A4B8A[];
|
||||
extern u8 EventScript_2A4B6F[];
|
||||
extern u8 EventScript_2A4B4C[];
|
||||
extern u8 EventScript_2A4B9B[];
|
||||
extern const u8* const gPokeblockNames[];
|
||||
|
||||
extern void sub_80EE44C(u8, u8);
|
||||
extern void IncrementGameStat(u8 index);
|
||||
|
||||
@@ -1082,13 +1082,13 @@ void game_continue(u8 taskId)
|
||||
if (sub_80E9878(i))
|
||||
{
|
||||
sub_80E9780(gUnknown_0203A020->names[count], i);
|
||||
gUnknown_0203A020->items[count].unk_00 = gUnknown_0203A020->names[count];
|
||||
gUnknown_0203A020->items[count].unk_04 = i;
|
||||
gUnknown_0203A020->items[count].name = gUnknown_0203A020->names[count];
|
||||
gUnknown_0203A020->items[count].id = i;
|
||||
count ++;
|
||||
}
|
||||
}
|
||||
gUnknown_0203A020->items[count].unk_00 = gText_Cancel;
|
||||
gUnknown_0203A020->items[count].unk_04 = -2;
|
||||
gUnknown_0203A020->items[count].name = gText_Cancel;
|
||||
gUnknown_0203A020->items[count].id = -2;
|
||||
data[0] = count + 1;
|
||||
if (data[0] < 8)
|
||||
{
|
||||
@@ -1098,11 +1098,11 @@ void game_continue(u8 taskId)
|
||||
{
|
||||
data[3] = 8;
|
||||
}
|
||||
gUnknown_03006310 = gUnknown_0858D07C;
|
||||
gUnknown_03006310.unk_10 = data[6];
|
||||
gUnknown_03006310.totalItems = data[0];
|
||||
gUnknown_03006310.items = gUnknown_0203A020->items;
|
||||
gUnknown_03006310.maxShowed = data[3];
|
||||
gMultiuseListMenuTemplate = gUnknown_0858D07C;
|
||||
gMultiuseListMenuTemplate.unk_10 = data[6];
|
||||
gMultiuseListMenuTemplate.totalItems = data[0];
|
||||
gMultiuseListMenuTemplate.items = gUnknown_0203A020->items;
|
||||
gMultiuseListMenuTemplate.maxShowed = data[3];
|
||||
}
|
||||
|
||||
void sub_80E9DEC(u32 a0, bool8 flag, struct ListMenu *menu)
|
||||
@@ -1119,7 +1119,7 @@ void sub_80E9E00(u8 taskId)
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
SetStandardWindowBorderStyle(data[6], 0);
|
||||
data[5] = ListMenuInit(&gUnknown_03006310, data[2], data[1]);
|
||||
data[5] = ListMenuInit(&gMultiuseListMenuTemplate, data[2], data[1]);
|
||||
sub_80E9E44(taskId);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
}
|
||||
@@ -1138,8 +1138,8 @@ void sub_80E9E90(u8 taskId)
|
||||
s32 input;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
input = ListMenuHandleInput(data[5]);
|
||||
get_coro_args_x18_x1A(data[5], &data[2], &data[1]);
|
||||
input = ListMenuHandleInputGetItemId(data[5]);
|
||||
sub_81AE860(data[5], &data[2], &data[1]);
|
||||
switch (input)
|
||||
{
|
||||
case -1:
|
||||
|
||||
230
src/use_pokeblock.c
Normal file
230
src/use_pokeblock.c
Normal file
@@ -0,0 +1,230 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "pokeblock.h"
|
||||
#include "malloc.h"
|
||||
#include "palette.h"
|
||||
#include "pokenav.h"
|
||||
#include "unknown_task.h"
|
||||
#include "text.h"
|
||||
#include "bg.h"
|
||||
#include "window.h"
|
||||
#include "text_window.h"
|
||||
|
||||
struct UsePokeblockSubStruct
|
||||
{
|
||||
void (*field_0)(void);
|
||||
void (*callback)(void);
|
||||
struct Pokeblock *pokeblock;
|
||||
struct Pokemon *pokemon;
|
||||
u8 stringBuffer[0x40];
|
||||
u8 field_50;
|
||||
u8 field_51;
|
||||
u8 field_52;
|
||||
u8 field_53;
|
||||
u8 field_54;
|
||||
u8 field_55;
|
||||
u8 field_56;
|
||||
u8 field_57[5];
|
||||
u8 field_5c[5];
|
||||
u8 field_61[5];
|
||||
s16 field_66[5];
|
||||
};
|
||||
|
||||
struct UsePokeblockStruct
|
||||
{
|
||||
u8 field_0[0x7C58];
|
||||
u8 field_7C58[0x378];
|
||||
struct UsePokeblockSubStruct info;
|
||||
};
|
||||
|
||||
extern u16 gKeyRepeatStartDelay;
|
||||
|
||||
// this file's functions
|
||||
void sub_816636C(void (*func)(void));
|
||||
void sub_8166380(void);
|
||||
void sub_816631C(void);
|
||||
void sub_81662C0(void);
|
||||
void sub_8166564(void);
|
||||
void sub_8166304(void);
|
||||
void sub_81668F8(void);
|
||||
void sub_8167420(void);
|
||||
void sub_8167760(void);
|
||||
u8 sub_81672E4(u8 arg0);
|
||||
bool8 sub_8168328(void);
|
||||
bool8 sub_8167930(void);
|
||||
void sub_8167608(u8 arg0);
|
||||
void sub_8167BA0(u16 arg0, u8 copyToVramMode);
|
||||
|
||||
extern const struct BgTemplate gUnknown_085DFCCC[4];
|
||||
extern const struct WindowTemplate gUnknown_085DFCDC[];
|
||||
|
||||
// ram variables
|
||||
EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL;
|
||||
EWRAM_DATA void (*gUnknown_0203BC94)(void) = NULL;
|
||||
EWRAM_DATA struct Pokeblock *gUnknown_0203BC98 = NULL;
|
||||
EWRAM_DATA u8 gPokeblockMonId = 0;
|
||||
EWRAM_DATA s16 gPokeblockGain = 0;
|
||||
EWRAM_DATA void *gUnknown_0203BCA0 = NULL;
|
||||
EWRAM_DATA void *gUnknown_0203BCA4 = NULL;
|
||||
EWRAM_DATA void *gUnknown_0203BCA8 = NULL;
|
||||
EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL;
|
||||
|
||||
// const rom data
|
||||
// todo: make it static once the file is decompiled
|
||||
|
||||
// code
|
||||
void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void))
|
||||
{
|
||||
gUnknown_0203BCAC = AllocZeroed(0x806C);
|
||||
gUnknown_0203BC90 = &gUnknown_0203BCAC->info;
|
||||
gUnknown_0203BC90->pokeblock = pokeblock;
|
||||
gUnknown_0203BC90->callback = callback;
|
||||
sub_816636C(sub_8166380);
|
||||
SetMainCallback2(sub_816631C);
|
||||
}
|
||||
|
||||
void CB2_ReturnAndChooseMonToGivePokeblock(void)
|
||||
{
|
||||
gUnknown_0203BCAC = AllocZeroed(0x806C);
|
||||
gUnknown_0203BC90 = &gUnknown_0203BCAC->info;
|
||||
gUnknown_0203BC90->pokeblock = gUnknown_0203BC98;
|
||||
gUnknown_0203BC90->callback = gUnknown_0203BC94;
|
||||
gPokeblockMonId = sub_81672E4(gPokeblockMonId);
|
||||
gUnknown_0203BC90->field_56 = gPokeblockMonId < 4 ? 0 : 1;
|
||||
sub_816636C(sub_8166380);
|
||||
SetMainCallback2(sub_81662C0);
|
||||
}
|
||||
|
||||
void sub_81662C0(void)
|
||||
{
|
||||
gUnknown_0203BC90->field_0();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
if (gUnknown_0203BC90->field_0 == sub_8166564)
|
||||
{
|
||||
gUnknown_0203BC90->field_50 = 0;
|
||||
SetMainCallback2(sub_8166304);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8166304(void)
|
||||
{
|
||||
sub_81668F8();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_816631C(void)
|
||||
{
|
||||
gUnknown_0203BC90->field_0();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
RunTextPrinters();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_8166340(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
sub_81D2108(gUnknown_0203BCAC->field_7C58);
|
||||
sub_80BA0A8();
|
||||
}
|
||||
|
||||
void sub_816636C(void (*func)(void))
|
||||
{
|
||||
gUnknown_0203BC90->field_0 = func;
|
||||
gUnknown_0203BC90->field_50 = 0;
|
||||
}
|
||||
|
||||
void sub_8166380(void)
|
||||
{
|
||||
switch (gUnknown_0203BC90->field_50)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_0203BCAC->field_0[0x7B10] = 0xFF;
|
||||
sub_81D1ED4(gUnknown_0203BCAC->field_7C58);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 1:
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 2:
|
||||
SetVBlankCallback(NULL);
|
||||
CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 3:
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC));
|
||||
InitWindows(gUnknown_085DFCDC);
|
||||
DeactivateAllTextPrinters();
|
||||
sub_809882C(0, 0x97, 0xE0);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 5:
|
||||
if (!sub_8168328())
|
||||
{
|
||||
gUnknown_0203BC90->field_50++;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
gKeyRepeatStartDelay = 20;
|
||||
sub_8167420();
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 7:
|
||||
if (!sub_8167930())
|
||||
{
|
||||
gUnknown_0203BC90->field_50++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
sub_8167608(0);
|
||||
sub_8167760();
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 9:
|
||||
if (!sub_81D312C(&gUnknown_0203BCAC->field_0[0x7B0E]))
|
||||
{
|
||||
gUnknown_0203BC90->field_50++;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 11:
|
||||
sub_81D2754(gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]);
|
||||
sub_81D20AC(gUnknown_0203BCAC->field_7C58);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 12:
|
||||
if (!sub_81D20BC(gUnknown_0203BCAC->field_7C58))
|
||||
{
|
||||
sub_81D1F84(gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7C58[0x14], &gUnknown_0203BCAC->field_7C58[0x14]);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
sub_81D2230(gUnknown_0203BCAC->field_7C58);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 14:
|
||||
PutWindowTilemap(0);
|
||||
PutWindowTilemap(1);
|
||||
sub_8167BA0(0, 1);
|
||||
gUnknown_0203BC90->field_50++;
|
||||
break;
|
||||
case 15:
|
||||
sub_816636C(sub_8166564);
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user