Merge branch 'master' into doc-link

This commit is contained in:
GriffinR
2020-06-10 17:36:43 -04:00
committed by GitHub
22 changed files with 520 additions and 914 deletions

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 231 B

+1 -1
View File
@@ -489,7 +489,7 @@ $(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \
$(ROULETTEGFXDIR)/makuhita.4bpp $(ROULETTEGFXDIR)/makuhita.4bpp
@cat $^ >$@ @cat $^ >$@
$(BATTRANSGFXDIR)/85BBC14.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/regis.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 $(GFX) $< $@ -num_tiles 53
$(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png
+1 -1
View File
@@ -7,7 +7,7 @@ void BattleTransition_Start(u8 transitionId);
bool8 IsBattleTransitionDone(void); bool8 IsBattleTransitionDone(void);
bool8 FldEff_Pokeball(void); bool8 FldEff_Pokeball(void);
void TransitionPhase1_Task_RunFuncs(u8 taskId); void TransitionPhase1_Task_RunFuncs(u8 taskId);
void sub_8149F58(u16 **a0, u16 **a1); void GetBg0TilesDst(u16 **tilemap, u16 **tileset);
extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; extern const struct SpritePalette gFieldEffectObjectPaletteInfo10;
+2 -2
View File
@@ -10,8 +10,8 @@ enum
}; };
bool8 ShowFieldMessage(const u8 *message); bool8 ShowFieldMessage(const u8 *message);
bool8 sub_8098238(const u8 *message); bool8 ShowPokenavFieldMessage(const u8 *message);
bool8 sub_80982B8(void); bool8 ShowFieldMessageFromBuffer(void);
bool8 ShowFieldAutoScrollMessage(const u8 *message); bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void); void HideFieldMessageBox(void);
bool8 IsFieldMessageBoxHidden(void); bool8 IsFieldMessageBoxHidden(void);
+1 -1
View File
@@ -14,7 +14,7 @@ s32 GetRematchIdxByTrainerIdx(s32 trainerIdx);
void InitMatchCallCounters(void); void InitMatchCallCounters(void);
bool32 TryStartMatchCall(void); bool32 TryStartMatchCall(void);
bool32 IsMatchCallTaskActive(void); bool32 IsMatchCallTaskActive(void);
void StartMatchCallFromScript(u8 *message); void StartMatchCallFromScript(const u8 *message);
void BufferPokedexRatingForMatchCall(u8 *destStr); void BufferPokedexRatingForMatchCall(u8 *destStr);
bool32 SelectMatchCallMessage(int, u8 *); bool32 SelectMatchCallMessage(int, u8 *);
void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId); void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId);
+1 -1
View File
@@ -41,7 +41,7 @@ struct ShopData
/*0x200B*/ u8 scrollIndicatorsTaskId; /*0x200B*/ u8 scrollIndicatorsTaskId;
/*0x200C*/ u8 iconSlot; /*0x200C*/ u8 iconSlot;
/*0x200D*/ u8 itemSpriteIds[2]; /*0x200D*/ u8 itemSpriteIds[2];
/*0x2010*/ s16 viewportObjects[16][5]; /*0x2010*/ s16 viewportObjects[OBJECT_EVENTS_COUNT][5];
}; };
void CreatePokemartMenu(const u16 *); void CreatePokemartMenu(const u16 *);
+2 -2
View File
@@ -1360,7 +1360,7 @@ void ShowTrainerIntroSpeech(void)
else else
CopyPyramidTrainerSpeechBefore(LocalIdToPyramidTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId)); CopyPyramidTrainerSpeechBefore(LocalIdToPyramidTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId));
sub_80982B8(); ShowFieldMessageFromBuffer();
} }
else if (InTrainerHillChallenge()) else if (InTrainerHillChallenge())
{ {
@@ -1369,7 +1369,7 @@ void ShowTrainerIntroSpeech(void)
else else
CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_INTRO, LocalIdToHillTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId)); CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_INTRO, LocalIdToHillTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId));
sub_80982B8(); ShowFieldMessageFromBuffer();
} }
else else
{ {
+364 -357
View File
File diff suppressed because it is too large Load Diff
+58 -49
View File
@@ -5,128 +5,136 @@
#include "task.h" #include "task.h"
#include "text.h" #include "text.h"
#include "match_call.h" #include "match_call.h"
#include "field_message_box.h"
static EWRAM_DATA u8 sFieldMessageBoxMode = 0; static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
static void textbox_fdecode_auto_and_task_add(u8*, bool32); static void ExpandStringAndStartDrawFieldMessage(const u8*, bool32);
static void textbox_auto_and_task_add(void); static void StartDrawFieldMessage(void);
void InitFieldMessageBox(void) void InitFieldMessageBox(void)
{ {
sFieldMessageBoxMode = 0; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
gTextFlags.canABSpeedUpPrint = 0; gTextFlags.canABSpeedUpPrint = FALSE;
gTextFlags.useAlternateDownArrow = 0; gTextFlags.useAlternateDownArrow = FALSE;
gTextFlags.autoScroll = 0; gTextFlags.autoScroll = FALSE;
gTextFlags.forceMidTextSpeed = 0; gTextFlags.forceMidTextSpeed = FALSE;
} }
static void sub_8098154(u8 taskId) #define tState data[0]
static void Task_DrawFieldMessage(u8 taskId)
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
switch (task->data[0]) switch (task->tState)
{ {
case 0: case 0:
LoadMessageBoxAndBorderGfx(); LoadMessageBoxAndBorderGfx();
task->data[0]++; task->tState++;
break; break;
case 1: case 1:
DrawDialogueFrame(0, 1); DrawDialogueFrame(0, 1);
task->data[0]++; task->tState++;
break; break;
case 2: case 2:
if (RunTextPrintersAndIsPrinter0Active() != 1) if (RunTextPrintersAndIsPrinter0Active() != TRUE)
{ {
sFieldMessageBoxMode = 0; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
DestroyTask(taskId); DestroyTask(taskId);
} }
} }
} }
static void task_add_textbox(void) #undef tState
static void CreateTask_DrawFieldMessage(void)
{ {
CreateTask(sub_8098154, 0x50); CreateTask(Task_DrawFieldMessage, 0x50);
} }
static void task_del_textbox(void) static void DestroyTask_DrawFieldMessage(void)
{ {
u8 taskId = FindTaskIdByFunc(sub_8098154); u8 taskId = FindTaskIdByFunc(Task_DrawFieldMessage);
if (taskId != 0xFF) if (taskId != 0xFF)
DestroyTask(taskId); DestroyTask(taskId);
} }
bool8 ShowFieldMessage(u8 *str) bool8 ShowFieldMessage(const u8 *str)
{ {
if (sFieldMessageBoxMode != 0) if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE; return FALSE;
textbox_fdecode_auto_and_task_add(str, 1); ExpandStringAndStartDrawFieldMessage(str, TRUE);
sFieldMessageBoxMode = 2; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
return TRUE; return TRUE;
} }
void sub_8098214(u8 taskId) static void Task_HidePokenavMessageWhenDone(u8 taskId)
{ {
if (!IsMatchCallTaskActive()) if (!IsMatchCallTaskActive())
{ {
sFieldMessageBoxMode = 0; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
DestroyTask(taskId); DestroyTask(taskId);
} }
} }
bool8 sub_8098238(u8 *str) bool8 ShowPokenavFieldMessage(const u8 *str)
{ {
if (sFieldMessageBoxMode != 0) if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE; return FALSE;
StringExpandPlaceholders(gStringVar4, str); StringExpandPlaceholders(gStringVar4, str);
CreateTask(sub_8098214, 0); CreateTask(Task_HidePokenavMessageWhenDone, 0);
StartMatchCallFromScript(str); StartMatchCallFromScript(str);
sFieldMessageBoxMode = 2; sFieldMessageBoxMode = 2;
return TRUE; return TRUE;
} }
bool8 ShowFieldAutoScrollMessage(u8 *str) bool8 ShowFieldAutoScrollMessage(const u8 *str)
{ {
if (sFieldMessageBoxMode != 0) if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE; return FALSE;
sFieldMessageBoxMode = 3; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
textbox_fdecode_auto_and_task_add(str, 0); ExpandStringAndStartDrawFieldMessage(str, FALSE);
return TRUE; return TRUE;
} }
bool8 sub_80982A0(u8 *str) // Unused
static bool8 ForceShowFieldAutoScrollMessage(const u8 *str)
{ {
sFieldMessageBoxMode = 3; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
textbox_fdecode_auto_and_task_add(str, 1); ExpandStringAndStartDrawFieldMessage(str, TRUE);
return TRUE; return TRUE;
} }
bool8 sub_80982B8(void) // Same as ShowFieldMessage, but instead of accepting a
// string arg it just prints whats already in gStringVar4
bool8 ShowFieldMessageFromBuffer(void)
{ {
if (sFieldMessageBoxMode != 0) if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE; return FALSE;
sFieldMessageBoxMode = 2; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
textbox_auto_and_task_add(); StartDrawFieldMessage();
return TRUE; return TRUE;
} }
static void textbox_fdecode_auto_and_task_add(u8* str, bool32 allowSkippingDelayWithButtonPress) static void ExpandStringAndStartDrawFieldMessage(const u8* str, bool32 allowSkippingDelayWithButtonPress)
{ {
StringExpandPlaceholders(gStringVar4, str); StringExpandPlaceholders(gStringVar4, str);
AddTextPrinterForMessage(allowSkippingDelayWithButtonPress); AddTextPrinterForMessage(allowSkippingDelayWithButtonPress);
task_add_textbox(); CreateTask_DrawFieldMessage();
} }
static void textbox_auto_and_task_add(void) static void StartDrawFieldMessage(void)
{ {
AddTextPrinterForMessage(TRUE); AddTextPrinterForMessage(TRUE);
task_add_textbox(); CreateTask_DrawFieldMessage();
} }
void HideFieldMessageBox(void) void HideFieldMessageBox(void)
{ {
task_del_textbox(); DestroyTask_DrawFieldMessage();
ClearDialogWindowAndFrame(0, 1); ClearDialogWindowAndFrame(0, 1);
sFieldMessageBoxMode = 0; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
} }
u8 GetFieldMessageBoxMode(void) u8 GetFieldMessageBoxMode(void)
@@ -136,20 +144,21 @@ u8 GetFieldMessageBoxMode(void)
bool8 IsFieldMessageBoxHidden(void) bool8 IsFieldMessageBoxHidden(void)
{ {
if (sFieldMessageBoxMode == 0) if (sFieldMessageBoxMode == FIELD_MESSAGE_BOX_HIDDEN)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
void sub_8098358(void) // Unused
static void ReplaceFieldMessageWithFrame(void)
{ {
task_del_textbox(); DestroyTask_DrawFieldMessage();
DrawStdWindowFrame(0, 1); DrawStdWindowFrame(0, 1);
sFieldMessageBoxMode = 0; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
} }
void StopFieldMessage(void) void StopFieldMessage(void)
{ {
task_del_textbox(); DestroyTask_DrawFieldMessage();
sFieldMessageBoxMode = 0; sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
} }
+1 -1
View File
@@ -1098,7 +1098,7 @@ bool32 TryStartMatchCall(void)
return FALSE; return FALSE;
} }
void StartMatchCallFromScript(u8 *message) void StartMatchCallFromScript(const u8 *message)
{ {
gMatchCallState.triggeredFromScript = 1; gMatchCallState.triggeredFromScript = 1;
StartMatchCall(); StartMatchCall();
+21 -21
View File
@@ -35,31 +35,31 @@ void PlayTimeCounter_Stop(void)
void PlayTimeCounter_Update(void) void PlayTimeCounter_Update(void)
{ {
if (sPlayTimeCounterState == RUNNING) if (sPlayTimeCounterState != RUNNING)
{ return;
gSaveBlock2Ptr->playTimeVBlanks++;
if (gSaveBlock2Ptr->playTimeVBlanks > 59) gSaveBlock2Ptr->playTimeVBlanks++;
{
gSaveBlock2Ptr->playTimeVBlanks = 0;
gSaveBlock2Ptr->playTimeSeconds++;
if (gSaveBlock2Ptr->playTimeSeconds > 59) if (gSaveBlock2Ptr->playTimeVBlanks < 60)
{ return;
gSaveBlock2Ptr->playTimeSeconds = 0;
gSaveBlock2Ptr->playTimeMinutes++;
if (gSaveBlock2Ptr->playTimeMinutes > 59) gSaveBlock2Ptr->playTimeVBlanks = 0;
{ gSaveBlock2Ptr->playTimeSeconds++;
gSaveBlock2Ptr->playTimeMinutes = 0;
gSaveBlock2Ptr->playTimeHours++;
if (gSaveBlock2Ptr->playTimeHours > 999) if (gSaveBlock2Ptr->playTimeSeconds < 60)
PlayTimeCounter_SetToMax(); return;
}
} gSaveBlock2Ptr->playTimeSeconds = 0;
} gSaveBlock2Ptr->playTimeMinutes++;
}
if (gSaveBlock2Ptr->playTimeMinutes < 60)
return;
gSaveBlock2Ptr->playTimeMinutes = 0;
gSaveBlock2Ptr->playTimeHours++;
if (gSaveBlock2Ptr->playTimeHours > 999)
PlayTimeCounter_SetToMax();
} }
void PlayTimeCounter_SetToMax(void) void PlayTimeCounter_SetToMax(void)
+1 -1
View File
@@ -1282,7 +1282,7 @@ bool8 ScrCmd_pokenavcall(struct ScriptContext *ctx)
if (msg == NULL) if (msg == NULL)
msg = (const u8 *)ctx->data[0]; msg = (const u8 *)ctx->data[0];
sub_8098238(msg); ShowPokenavFieldMessage(msg);
return FALSE; return FALSE;
} }
+5 -5
View File
@@ -796,15 +796,15 @@ static void BuyMenuCollectObjectEventData(void)
u8 r8 = 0; u8 r8 = 0;
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY); GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
for (y = 0; y < 16; y++) for (y = 0; y < OBJECT_EVENTS_COUNT; y++)
gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = 16; gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = OBJECT_EVENTS_COUNT;
for (y = 0; y < 5; y++) for (y = 0; y < 5; y++)
{ {
for (x = 0; x < 7; x++) for (x = 0; x < 7; x++)
{ {
u8 objEventId = GetObjectEventIdByXY(facingX - 4 + x, facingY - 2 + y); u8 objEventId = GetObjectEventIdByXY(facingX - 4 + x, facingY - 2 + y);
if (objEventId != 16) if (objEventId != OBJECT_EVENTS_COUNT)
{ {
gShopDataPtr->viewportObjects[r8][OBJ_EVENT_ID] = objEventId; gShopDataPtr->viewportObjects[r8][OBJ_EVENT_ID] = objEventId;
gShopDataPtr->viewportObjects[r8][X_COORD] = x; gShopDataPtr->viewportObjects[r8][X_COORD] = x;
@@ -839,9 +839,9 @@ static void BuyMenuDrawObjectEvents(void)
u8 spriteId; u8 spriteId;
const struct ObjectEventGraphicsInfo *graphicsInfo; const struct ObjectEventGraphicsInfo *graphicsInfo;
for (i = 0; i < 16; i++) // max objects? for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{ {
if (gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID] == 16) if (gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID] == OBJECT_EVENTS_COUNT)
continue; continue;
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID]].graphicsId); graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID]].graphicsId);
+1 -1
View File
@@ -904,7 +904,7 @@ const u8 *GetTrainerHillTrainerScript(void)
static void ShowTrainerHillPostBattleText(void) static void ShowTrainerHillPostBattleText(void)
{ {
CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_AFTER, gSpecialVar_LastTalked); CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_AFTER, gSpecialVar_LastTalked);
sub_80982B8(); ShowFieldMessageFromBuffer();
} }
static void CreateNPCTrainerHillParty(u16 trainerId, u8 firstMonId) static void CreateNPCTrainerHillParty(u16 trainerId, u8 firstMonId)
+59 -469
View File
@@ -3800,25 +3800,28 @@ static s8 sub_80F06D0(TVShow *tvShows)
return -1; return -1;
} }
#ifdef NONMATCHING
static void sub_80F0708(void) // FIXME: register allocation shenanigans static void sub_80F0708(void) // FIXME: register allocation shenanigans
{ {
u16 i; u16 i;
TVShow *show; u16 j;
for (i = 0; i < LAST_TVSHOW_IDX; i ++) for (i = 0; i < LAST_TVSHOW_IDX; i ++)
{ {
switch (gSaveBlock1Ptr->tvShows[i].common.kind) switch (gSaveBlock1Ptr->tvShows[i].common.kind)
{ {
case TVSHOW_CONTEST_LIVE_UPDATES: case TVSHOW_CONTEST_LIVE_UPDATES:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies;
sub_80F0B24(j, i);
break; break;
case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: case TVSHOW_3_CHEERS_FOR_POKEBLOCKS:
break; break;
case TVSHOW_BATTLE_UPDATE: case TVSHOW_BATTLE_UPDATE:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer, i); j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent;
sub_80F0B24(j, i);
break; break;
case TVSHOW_FAN_CLUB_SPECIAL: case TVSHOW_FAN_CLUB_SPECIAL:
break; break;
@@ -3828,43 +3831,57 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans
case TVSHOW_OFF_AIR: case TVSHOW_OFF_AIR:
break; break;
case TVSHOW_FAN_CLUB_LETTER: case TVSHOW_FAN_CLUB_LETTER:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_RECENT_HAPPENINGS: case TVSHOW_RECENT_HAPPENINGS:
break; break;
case TVSHOW_PKMN_FAN_CLUB_OPINIONS: case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_UNKN_SHOWTYPE_04: case TVSHOW_UNKN_SHOWTYPE_04:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06, i); j = (&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06;
sub_80F0B24(j, i);
break; break;
case TVSHOW_NAME_RATER_SHOW: case TVSHOW_NAME_RATER_SHOW:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies;
sub_80F0B24(j, i);
break; break;
case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies;
sub_80F0B24(j, i);
break; break;
case TVSHOW_POKEMON_TODAY_CAUGHT: case TVSHOW_POKEMON_TODAY_CAUGHT:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_SMART_SHOPPER: case TVSHOW_SMART_SHOPPER:
break; break;
case TVSHOW_POKEMON_TODAY_FAILED: case TVSHOW_POKEMON_TODAY_FAILED:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2;
sub_80F0B24(j, i);
break; break;
case TVSHOW_FISHING_ADVICE: case TVSHOW_FISHING_ADVICE:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_WORLD_OF_MASTERS: case TVSHOW_WORLD_OF_MASTERS:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke;
sub_80F0B24(j, i);
break; break;
case TVSHOW_TODAYS_RIVAL_TRAINER: case TVSHOW_TODAYS_RIVAL_TRAINER:
@@ -3876,37 +3893,48 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans
case TVSHOW_FIND_THAT_GAMER: case TVSHOW_FIND_THAT_GAMER:
break; break;
case TVSHOW_BREAKING_NEWS: case TVSHOW_BREAKING_NEWS:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies, i); j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_SECRET_BASE_VISIT: case TVSHOW_SECRET_BASE_VISIT:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species;
sub_80F0B24(j, i);
break; break;
case TVSHOW_LOTTO_WINNER: case TVSHOW_LOTTO_WINNER:
break; break;
case TVSHOW_BATTLE_SEMINAR: case TVSHOW_BATTLE_SEMINAR:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species, i); j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies;
sub_80F0B24(j, i);
break; break;
case TVSHOW_TRAINER_FAN_CLUB: case TVSHOW_TRAINER_FAN_CLUB:
break; break;
case TVSHOW_CUTIES: case TVSHOW_CUTIES:
break; break;
case TVSHOW_FRONTIER: case TVSHOW_FRONTIER:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species1, i); j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species1;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species2, i); sub_80F0B24(j, i);
switch ((&gSaveBlock1Ptr->tvShows[i])->frontier.facility) j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species2;
sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.facility;
switch (j)
{ {
case 3: case 3:
case 4: case 4:
break; break;
case 1: case 1:
case 5 ... 13: case 5 ... 13:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i); j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3;
sub_80F0B24(j, i);
break; break;
case 2: case 2:
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i); j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3;
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species4, i); sub_80F0B24(j, i);
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species4;
sub_80F0B24(j, i);
break; break;
} }
break; break;
@@ -3926,444 +3954,6 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans
} }
} }
} }
#else
NAKED static void sub_80F0708(void)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r9\n"
"\tmov r6, r8\n"
"\tpush {r6,r7}\n"
"\tsub sp, 0x8\n"
"\tmovs r0, 0\n"
"\tmov r9, r0\n"
"_080F0716:\n"
"\tldr r3, =gSaveBlock1Ptr\n"
"\tldr r1, [r3]\n"
"\tmov r4, r9\n"
"\tlsls r2, r4, 3\n"
"\tadds r0, r2, r4\n"
"\tlsls r0, 2\n"
"\tadds r1, r0\n"
"\tldr r0, =0x000027cc\n"
"\tadds r1, r0\n"
"\tldrb r0, [r1]\n"
"\tadds r7, r2, 0\n"
"\tcmp r0, 0x29\n"
"\tbls _080F0732\n"
"\tb _080F0AD8\n"
"_080F0732:\n"
"\tlsls r0, 2\n"
"\tldr r1, =_080F0748\n"
"\tadds r0, r1\n"
"\tldr r0, [r0]\n"
"\tmov pc, r0\n"
"\t.pool\n"
"\t.align 2, 0\n"
"_080F0748:\n"
"\t.4byte _080F0AE2_break @ TVSHOW_OFF_AIR\n"
"\t.4byte _080F0848 @ TVSHOW_FAN_CLUB_LETTER\n"
"\t.4byte _080F0AE2_break @ TVSHOW_RECENT_HAPPENINGS\n"
"\t.4byte _080F0860 @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n"
"\t.4byte _080F0878 @ TVSHOW_UNKN_SHOWTYPE_04\n"
"\t.4byte _080F0890 @ TVSHOW_NAME_RATER_SHOW\n"
"\t.4byte _080F08BC @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n"
"\t.4byte _080F08D4 @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n"
"\t.4byte _080F07F0 @ TVSHOW_CONTEST_LIVE_UPDATES\n"
"\t.4byte _080F0AE2_break @ TVSHOW_3_CHEERS_FOR_POKEBLOCKS\n"
"\t.4byte _080F081C @ TVSHOW_BATTLE_UPDATE\n"
"\t.4byte _080F0AE2_break @ TVSHOW_FAN_CLUB_SPECIAL\n"
"\t.4byte _080F0AE2_break @ TVSHOW_CONTEST_LIVE_UPDATES_2\n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0900 @ TVSHOW_POKEMON_TODAY_CAUGHT\n"
"\t.4byte _080F0AE2_break @ TVSHOW_SMART_SHOPPER\n"
"\t.4byte _080F0918 @ TVSHOW_POKEMON_TODAY_FAILED\n"
"\t.4byte _080F0944 @ TVSHOW_FISHING_ADVICE\n"
"\t.4byte _080F095C @ TVSHOW_WORLD_OF_MASTERS\n"
"\t.4byte _080F0AE2_break @ TVSHOW_TODAYS_RIVAL_TRAINER\n"
"\t.4byte _080F0AE2_break @ TVSHOW_TREND_WATCHER\n"
"\t.4byte _080F0AE2_break @ TVSHOW_TREASURE_INVESTIGATORS\n"
"\t.4byte _080F0AE2_break @ TVSHOW_FIND_THAT_GAMER\n"
"\t.4byte _080F0974 @ TVSHOW_BREAKING_NEWS\n"
"\t.4byte _080F09A0 @ TVSHOW_SECRET_BASE_VISIT\n"
"\t.4byte _080F0AE2_break @ TVSHOW_LOTTO_WINNER\n"
"\t.4byte _080F09C0 @ TVSHOW_BATTLE_SEMINAR\n"
"\t.4byte _080F0AE2_break @ TVSHOW_TRAINER_FAN_CLUB\n"
"\t.4byte _080F0AE2_break @ TVSHOW_CUTIES\n"
"\t.4byte _080F09F4 @ TVSHOW_FRONTIER\n"
"\t.4byte _080F0AE2_break @ TVSHOW_NUMBER_ONE\n"
"\t.4byte _080F0AE2_break @ TVSHOW_SECRET_BASE_SECRETS\n"
"\t.4byte _080F0AE2_break @ TVSHOW_SAFARI_FAN_CLUB\n"
"\t.4byte _080F0AD8 @ \n"
"\t.4byte _080F0AE2_break @ TVSHOW_MASS_OUTBREAK\n"
"_080F07F0:\n"
"\tldr r0, [r3]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0x12]\n"
"\tlsls r5, r1, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0x2]\n"
"\tb _080F09E6\n"
"\t.pool\n"
"_080F081C:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r4, r7, r2\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0x16]\n"
"\tlsls r5, r2, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0x2]\n"
"\tb _080F09E6\n"
"\t.pool\n"
"_080F0848:\n"
"\tldr r0, [r3]\n"
"\tmov r4, r9\n"
"\tadds r1, r7, r4\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r0, =0x000027cc\n"
"\tadds r1, r0\n"
"\tldrh r0, [r1, 0x2]\n"
"\tb _080F09B0\n"
"\t.pool\n"
"_080F0860:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r1, r7, r2\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r4, =0x000027cc\n"
"\tadds r1, r4\n"
"\tldrh r0, [r1, 0x2]\n"
"\tlsls r1, r2, 24\n"
"\tb _080F09B2\n"
"\t.pool\n"
"_080F0878:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r1, r7, r2\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r4, =0x000027cc\n"
"\tadds r1, r4\n"
"\tldrh r0, [r1, 0x6]\n"
"\tlsls r1, r2, 24\n"
"\tb _080F09B2\n"
"\t.pool\n"
"_080F0890:\n"
"\tldr r0, [r3]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0x2]\n"
"\tlsls r5, r1, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0x1C]\n"
"\tb _080F09E6\n"
"\t.pool\n"
"_080F08BC:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r1, r7, r2\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r4, =0x000027cc\n"
"\tadds r1, r4\n"
"\tldrh r0, [r1, 0x2]\n"
"\tlsls r1, r2, 24\n"
"\tb _080F09B2\n"
"\t.pool\n"
"_080F08D4:\n"
"\tldr r0, [r3]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0xA]\n"
"\tlsls r5, r1, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0x14]\n"
"\tb _080F09E6\n"
"\t.pool\n"
"_080F0900:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r1, r7, r2\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r4, =0x000027cc\n"
"\tadds r1, r4\n"
"\tldrh r0, [r1, 0x10]\n"
"\tlsls r1, r2, 24\n"
"\tb _080F09B2\n"
"\t.pool\n"
"_080F0918:\n"
"\tldr r0, [r3]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0xC]\n"
"\tlsls r5, r1, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0xE]\n"
"\tb _080F09E6\n"
"\t.pool\n"
"_080F0944:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r1, r7, r2\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r4, =0x000027cc\n"
"\tadds r1, r4\n"
"\tldrh r0, [r1, 0x4]\n"
"\tlsls r1, r2, 24\n"
"\tb _080F09B2\n"
"\t.pool\n"
"_080F095C:\n"
"\tldr r0, [r3]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0x8]\n"
"\tb _080F09D0\n"
"\t.pool\n"
"_080F0974:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r4, r7, r2\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0x2]\n"
"\tlsls r5, r2, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0xA]\n"
"\tb _080F09E6\n"
"\t.pool\n"
"_080F09A0:\n"
"\tldr r0, [r3]\n"
"\tmov r4, r9\n"
"\tadds r1, r7, r4\n"
"\tlsls r1, 2\n"
"\tadds r1, r0\n"
"\tldr r0, =0x000027cc\n"
"\tadds r1, r0\n"
"\tldrh r0, [r1, 0x8]\n"
"_080F09B0:\n"
"\tlsls r1, r4, 24\n"
"_080F09B2:\n"
"\tlsrs r1, 24\n"
"\tbl sub_80F0B24\n"
"\tb _080F0AE2_break\n"
"\t.pool\n"
"_080F09C0:\n"
"\tldr r0, [r3]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r6, =0x000027cc\n"
"\tadds r0, r6\n"
"\tldrh r0, [r0, 0x6]\n"
"_080F09D0:\n"
"\tlsls r5, r1, 24\n"
"\tlsrs r5, 24\n"
"\tadds r1, r5, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r6\n"
"\tldrh r0, [r4, 0x4]\n"
"_080F09E6:\n"
"\tadds r1, r5, 0\n"
"\tbl sub_80F0B24\n"
"\tb _080F0AE2_break\n"
"\t.pool\n"
"_080F09F4:\n"
"\tldr r0, [r3]\n"
"\tmov r2, r9\n"
"\tadds r4, r7, r2\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r5, =0x000027cc\n"
"\tadds r0, r5\n"
"\tldrh r0, [r0, 0x4]\n"
"\tlsls r2, 24\n"
"\tmov r8, r2\n"
"\tlsrs r6, r2, 24\n"
"\tadds r1, r6, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r0, r4, r0\n"
"\tadds r0, r5\n"
"\tldrh r0, [r0, 0x6]\n"
"\tadds r1, r6, 0\n"
"\tbl sub_80F0B24\n"
"\tldr r3, [sp, 0x4]\n"
"\tldr r0, [r3]\n"
"\tadds r4, r0\n"
"\tadds r4, r5\n"
"\tldrb r0, [r4, 0xD]\n"
"\tsubs r0, 0x1\n"
"\tmov r6, r8\n"
"\tcmp r0, 0xC\n"
"\tbhi _080F0AE2_break\n"
"\tlsls r0, 2\n"
"\tldr r1, =_080F0A48\n"
"\tadds r0, r1\n"
"\tldr r0, [r0]\n"
"\tmov pc, r0\n"
"\t.pool\n"
"\t.align 2, 0\n"
"_080F0A48:\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0AA0\n"
"\t.4byte _080F0AE2_break\n"
"\t.4byte _080F0AE2_break\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"\t.4byte _080F0A7C\n"
"_080F0A7C:\n"
"\tldr r0, =gSaveBlock1Ptr\n"
"\tldr r1, [r0]\n"
"\tmov r4, r9\n"
"\tadds r0, r7, r4\n"
"\tlsls r0, 2\n"
"\tadds r0, r1\n"
"\tldr r1, =0x000027cc\n"
"\tadds r0, r1\n"
"\tldrh r0, [r0, 0x8]\n"
"\tlsrs r1, r6, 24\n"
"\tbl sub_80F0B24\n"
"\tb _080F0AE2_break\n"
"\t.pool\n"
"_080F0AA0:\n"
"\tldr r2, =gSaveBlock1Ptr\n"
"\tldr r0, [r2]\n"
"\tmov r1, r9\n"
"\tadds r4, r7, r1\n"
"\tlsls r4, 2\n"
"\tadds r0, r4, r0\n"
"\tldr r5, =0x000027cc\n"
"\tadds r0, r5\n"
"\tldrh r0, [r0, 0x8]\n"
"\tlsrs r6, 24\n"
"\tadds r1, r6, 0\n"
"\tstr r2, [sp]\n"
"\tbl sub_80F0B24\n"
"\tldr r2, [sp]\n"
"\tldr r0, [r2]\n"
"\tadds r4, r0\n"
"\tadds r4, r5\n"
"\tldrh r0, [r4, 0xA]\n"
"\tadds r1, r6, 0\n"
"\tbl sub_80F0B24\n"
"\tb _080F0AE2_break\n"
"\t.pool\n"
"_080F0AD8:\n"
"\tmov r2, r9\n"
"\tlsls r0, r2, 24\n"
"\tlsrs r0, 24\n"
"\tbl SetTvShowInactive\n"
"_080F0AE2_break:\n"
"\tmov r0, r9\n"
"\tadds r0, 0x1\n"
"\tlsls r0, 16\n"
"\tlsrs r0, 16\n"
"\tmov r9, r0\n"
"\tcmp r0, 0x17\n"
"\tbhi _080F0AF2\n"
"\tb _080F0716\n"
"_080F0AF2:\n"
"\tadd sp, 0x8\n"
"\tpop {r3,r4}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tpop {r4-r7}\n"
"\tpop {r0}\n"
"\tbx r0");
}
#endif
void SetTvShowInactive(u8 showIdx) void SetTvShowInactive(u8 showIdx)
{ {
+1 -1
View File
@@ -187,7 +187,7 @@ static void sub_81DA700(void)
{ {
u16 *dst1, *dst2; u16 *dst1, *dst2;
sub_8149F58(&dst1, &dst2); GetBg0TilesDst(&dst1, &dst2);
LZ77UnCompVram(gUnknown_0862AD54, dst2); LZ77UnCompVram(gUnknown_0862AD54, dst2);
LZ77UnCompVram(gUnknown_0862AF30, dst1); LZ77UnCompVram(gUnknown_0862AF30, dst1);
LoadPalette(gUnknown_0862B53C, 0xF0, 0x20); LoadPalette(gUnknown_0862B53C, 0xF0, 0x20);