mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 11:44:17 +01:00
Merge branch 'master' into doc-link
This commit is contained in:
commit
a9a427c6f2
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 231 B |
@ -489,7 +489,7 @@ $(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \
|
||||
$(ROULETTEGFXDIR)/makuhita.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(BATTRANSGFXDIR)/85BBC14.4bpp: %.4bpp: %.png
|
||||
$(BATTRANSGFXDIR)/regis.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 53
|
||||
|
||||
$(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png
|
||||
|
@ -7,7 +7,7 @@ void BattleTransition_Start(u8 transitionId);
|
||||
bool8 IsBattleTransitionDone(void);
|
||||
bool8 FldEff_Pokeball(void);
|
||||
void TransitionPhase1_Task_RunFuncs(u8 taskId);
|
||||
void sub_8149F58(u16 **a0, u16 **a1);
|
||||
void GetBg0TilesDst(u16 **tilemap, u16 **tileset);
|
||||
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo10;
|
||||
|
||||
|
@ -10,8 +10,8 @@ enum
|
||||
};
|
||||
|
||||
bool8 ShowFieldMessage(const u8 *message);
|
||||
bool8 sub_8098238(const u8 *message);
|
||||
bool8 sub_80982B8(void);
|
||||
bool8 ShowPokenavFieldMessage(const u8 *message);
|
||||
bool8 ShowFieldMessageFromBuffer(void);
|
||||
bool8 ShowFieldAutoScrollMessage(const u8 *message);
|
||||
void HideFieldMessageBox(void);
|
||||
bool8 IsFieldMessageBoxHidden(void);
|
||||
|
@ -14,7 +14,7 @@ s32 GetRematchIdxByTrainerIdx(s32 trainerIdx);
|
||||
void InitMatchCallCounters(void);
|
||||
bool32 TryStartMatchCall(void);
|
||||
bool32 IsMatchCallTaskActive(void);
|
||||
void StartMatchCallFromScript(u8 *message);
|
||||
void StartMatchCallFromScript(const u8 *message);
|
||||
void BufferPokedexRatingForMatchCall(u8 *destStr);
|
||||
bool32 SelectMatchCallMessage(int, u8 *);
|
||||
void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId);
|
||||
|
@ -41,7 +41,7 @@ struct ShopData
|
||||
/*0x200B*/ u8 scrollIndicatorsTaskId;
|
||||
/*0x200C*/ u8 iconSlot;
|
||||
/*0x200D*/ u8 itemSpriteIds[2];
|
||||
/*0x2010*/ s16 viewportObjects[16][5];
|
||||
/*0x2010*/ s16 viewportObjects[OBJECT_EVENTS_COUNT][5];
|
||||
};
|
||||
|
||||
void CreatePokemartMenu(const u16 *);
|
||||
|
@ -1360,7 +1360,7 @@ void ShowTrainerIntroSpeech(void)
|
||||
else
|
||||
CopyPyramidTrainerSpeechBefore(LocalIdToPyramidTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId));
|
||||
|
||||
sub_80982B8();
|
||||
ShowFieldMessageFromBuffer();
|
||||
}
|
||||
else if (InTrainerHillChallenge())
|
||||
{
|
||||
@ -1369,7 +1369,7 @@ void ShowTrainerIntroSpeech(void)
|
||||
else
|
||||
CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_INTRO, LocalIdToHillTrainerId(gObjectEvents[gApproachingTrainers[gApproachingTrainerId].objectEventId].localId));
|
||||
|
||||
sub_80982B8();
|
||||
ShowFieldMessageFromBuffer();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,128 +5,136 @@
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "match_call.h"
|
||||
#include "field_message_box.h"
|
||||
|
||||
static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
|
||||
|
||||
static void textbox_fdecode_auto_and_task_add(u8*, bool32);
|
||||
static void textbox_auto_and_task_add(void);
|
||||
static void ExpandStringAndStartDrawFieldMessage(const u8*, bool32);
|
||||
static void StartDrawFieldMessage(void);
|
||||
|
||||
void InitFieldMessageBox(void)
|
||||
{
|
||||
sFieldMessageBoxMode = 0;
|
||||
gTextFlags.canABSpeedUpPrint = 0;
|
||||
gTextFlags.useAlternateDownArrow = 0;
|
||||
gTextFlags.autoScroll = 0;
|
||||
gTextFlags.forceMidTextSpeed = 0;
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
|
||||
gTextFlags.canABSpeedUpPrint = FALSE;
|
||||
gTextFlags.useAlternateDownArrow = FALSE;
|
||||
gTextFlags.autoScroll = FALSE;
|
||||
gTextFlags.forceMidTextSpeed = FALSE;
|
||||
}
|
||||
|
||||
static void sub_8098154(u8 taskId)
|
||||
#define tState data[0]
|
||||
|
||||
static void Task_DrawFieldMessage(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
switch (task->tState)
|
||||
{
|
||||
case 0:
|
||||
LoadMessageBoxAndBorderGfx();
|
||||
task->data[0]++;
|
||||
task->tState++;
|
||||
break;
|
||||
case 1:
|
||||
DrawDialogueFrame(0, 1);
|
||||
task->data[0]++;
|
||||
task->tState++;
|
||||
break;
|
||||
case 2:
|
||||
if (RunTextPrintersAndIsPrinter0Active() != 1)
|
||||
if (RunTextPrintersAndIsPrinter0Active() != TRUE)
|
||||
{
|
||||
sFieldMessageBoxMode = 0;
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
|
||||
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)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
bool8 ShowFieldMessage(u8 *str)
|
||||
bool8 ShowFieldMessage(const u8 *str)
|
||||
{
|
||||
if (sFieldMessageBoxMode != 0)
|
||||
if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
|
||||
return FALSE;
|
||||
textbox_fdecode_auto_and_task_add(str, 1);
|
||||
sFieldMessageBoxMode = 2;
|
||||
ExpandStringAndStartDrawFieldMessage(str, TRUE);
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8098214(u8 taskId)
|
||||
static void Task_HidePokenavMessageWhenDone(u8 taskId)
|
||||
{
|
||||
if (!IsMatchCallTaskActive())
|
||||
{
|
||||
sFieldMessageBoxMode = 0;
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8098238(u8 *str)
|
||||
bool8 ShowPokenavFieldMessage(const u8 *str)
|
||||
{
|
||||
if (sFieldMessageBoxMode != 0)
|
||||
if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
|
||||
return FALSE;
|
||||
StringExpandPlaceholders(gStringVar4, str);
|
||||
CreateTask(sub_8098214, 0);
|
||||
CreateTask(Task_HidePokenavMessageWhenDone, 0);
|
||||
StartMatchCallFromScript(str);
|
||||
sFieldMessageBoxMode = 2;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ShowFieldAutoScrollMessage(u8 *str)
|
||||
bool8 ShowFieldAutoScrollMessage(const u8 *str)
|
||||
{
|
||||
if (sFieldMessageBoxMode != 0)
|
||||
if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
|
||||
return FALSE;
|
||||
sFieldMessageBoxMode = 3;
|
||||
textbox_fdecode_auto_and_task_add(str, 0);
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
|
||||
ExpandStringAndStartDrawFieldMessage(str, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80982A0(u8 *str)
|
||||
// Unused
|
||||
static bool8 ForceShowFieldAutoScrollMessage(const u8 *str)
|
||||
{
|
||||
sFieldMessageBoxMode = 3;
|
||||
textbox_fdecode_auto_and_task_add(str, 1);
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
|
||||
ExpandStringAndStartDrawFieldMessage(str, 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;
|
||||
sFieldMessageBoxMode = 2;
|
||||
textbox_auto_and_task_add();
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
|
||||
StartDrawFieldMessage();
|
||||
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);
|
||||
AddTextPrinterForMessage(allowSkippingDelayWithButtonPress);
|
||||
task_add_textbox();
|
||||
CreateTask_DrawFieldMessage();
|
||||
}
|
||||
|
||||
static void textbox_auto_and_task_add(void)
|
||||
static void StartDrawFieldMessage(void)
|
||||
{
|
||||
AddTextPrinterForMessage(TRUE);
|
||||
task_add_textbox();
|
||||
CreateTask_DrawFieldMessage();
|
||||
}
|
||||
|
||||
void HideFieldMessageBox(void)
|
||||
{
|
||||
task_del_textbox();
|
||||
DestroyTask_DrawFieldMessage();
|
||||
ClearDialogWindowAndFrame(0, 1);
|
||||
sFieldMessageBoxMode = 0;
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
|
||||
}
|
||||
|
||||
u8 GetFieldMessageBoxMode(void)
|
||||
@ -136,20 +144,21 @@ u8 GetFieldMessageBoxMode(void)
|
||||
|
||||
bool8 IsFieldMessageBoxHidden(void)
|
||||
{
|
||||
if (sFieldMessageBoxMode == 0)
|
||||
if (sFieldMessageBoxMode == FIELD_MESSAGE_BOX_HIDDEN)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8098358(void)
|
||||
// Unused
|
||||
static void ReplaceFieldMessageWithFrame(void)
|
||||
{
|
||||
task_del_textbox();
|
||||
DestroyTask_DrawFieldMessage();
|
||||
DrawStdWindowFrame(0, 1);
|
||||
sFieldMessageBoxMode = 0;
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
|
||||
}
|
||||
|
||||
void StopFieldMessage(void)
|
||||
{
|
||||
task_del_textbox();
|
||||
sFieldMessageBoxMode = 0;
|
||||
DestroyTask_DrawFieldMessage();
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
|
||||
}
|
||||
|
@ -1098,7 +1098,7 @@ bool32 TryStartMatchCall(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void StartMatchCallFromScript(u8 *message)
|
||||
void StartMatchCallFromScript(const u8 *message)
|
||||
{
|
||||
gMatchCallState.triggeredFromScript = 1;
|
||||
StartMatchCall();
|
||||
|
@ -35,31 +35,31 @@ void PlayTimeCounter_Stop(void)
|
||||
|
||||
void PlayTimeCounter_Update(void)
|
||||
{
|
||||
if (sPlayTimeCounterState == RUNNING)
|
||||
{
|
||||
gSaveBlock2Ptr->playTimeVBlanks++;
|
||||
if (sPlayTimeCounterState != RUNNING)
|
||||
return;
|
||||
|
||||
if (gSaveBlock2Ptr->playTimeVBlanks > 59)
|
||||
{
|
||||
gSaveBlock2Ptr->playTimeVBlanks = 0;
|
||||
gSaveBlock2Ptr->playTimeSeconds++;
|
||||
gSaveBlock2Ptr->playTimeVBlanks++;
|
||||
|
||||
if (gSaveBlock2Ptr->playTimeSeconds > 59)
|
||||
{
|
||||
gSaveBlock2Ptr->playTimeSeconds = 0;
|
||||
gSaveBlock2Ptr->playTimeMinutes++;
|
||||
if (gSaveBlock2Ptr->playTimeVBlanks < 60)
|
||||
return;
|
||||
|
||||
if (gSaveBlock2Ptr->playTimeMinutes > 59)
|
||||
{
|
||||
gSaveBlock2Ptr->playTimeMinutes = 0;
|
||||
gSaveBlock2Ptr->playTimeHours++;
|
||||
gSaveBlock2Ptr->playTimeVBlanks = 0;
|
||||
gSaveBlock2Ptr->playTimeSeconds++;
|
||||
|
||||
if (gSaveBlock2Ptr->playTimeHours > 999)
|
||||
PlayTimeCounter_SetToMax();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gSaveBlock2Ptr->playTimeSeconds < 60)
|
||||
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)
|
||||
|
@ -1282,7 +1282,7 @@ bool8 ScrCmd_pokenavcall(struct ScriptContext *ctx)
|
||||
|
||||
if (msg == NULL)
|
||||
msg = (const u8 *)ctx->data[0];
|
||||
sub_8098238(msg);
|
||||
ShowPokenavFieldMessage(msg);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
10
src/shop.c
10
src/shop.c
@ -796,15 +796,15 @@ static void BuyMenuCollectObjectEventData(void)
|
||||
u8 r8 = 0;
|
||||
|
||||
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
|
||||
for (y = 0; y < 16; y++)
|
||||
gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = 16;
|
||||
for (y = 0; y < OBJECT_EVENTS_COUNT; y++)
|
||||
gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = OBJECT_EVENTS_COUNT;
|
||||
for (y = 0; y < 5; y++)
|
||||
{
|
||||
for (x = 0; x < 7; x++)
|
||||
{
|
||||
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][X_COORD] = x;
|
||||
@ -839,9 +839,9 @@ static void BuyMenuDrawObjectEvents(void)
|
||||
u8 spriteId;
|
||||
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;
|
||||
|
||||
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID]].graphicsId);
|
||||
|
@ -904,7 +904,7 @@ const u8 *GetTrainerHillTrainerScript(void)
|
||||
static void ShowTrainerHillPostBattleText(void)
|
||||
{
|
||||
CopyTrainerHillTrainerText(TRAINER_HILL_TEXT_AFTER, gSpecialVar_LastTalked);
|
||||
sub_80982B8();
|
||||
ShowFieldMessageFromBuffer();
|
||||
}
|
||||
|
||||
static void CreateNPCTrainerHillParty(u16 trainerId, u8 firstMonId)
|
||||
|
528
src/tv.c
528
src/tv.c
@ -3800,25 +3800,28 @@ static s8 sub_80F06D0(TVShow *tvShows)
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
static void sub_80F0708(void) // FIXME: register allocation shenanigans
|
||||
{
|
||||
u16 i;
|
||||
TVShow *show;
|
||||
u16 j;
|
||||
|
||||
for (i = 0; i < LAST_TVSHOW_IDX; i ++)
|
||||
{
|
||||
switch (gSaveBlock1Ptr->tvShows[i].common.kind)
|
||||
{
|
||||
case TVSHOW_CONTEST_LIVE_UPDATES:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_3_CHEERS_FOR_POKEBLOCKS:
|
||||
break;
|
||||
case TVSHOW_BATTLE_UPDATE:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_FAN_CLUB_SPECIAL:
|
||||
break;
|
||||
@ -3828,43 +3831,57 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans
|
||||
case TVSHOW_OFF_AIR:
|
||||
break;
|
||||
case TVSHOW_FAN_CLUB_LETTER:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_RECENT_HAPPENINGS:
|
||||
break;
|
||||
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;
|
||||
case TVSHOW_UNKN_SHOWTYPE_04:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_NAME_RATER_SHOW:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
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;
|
||||
case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
|
||||
case TVSHOW_POKEMON_TODAY_CAUGHT:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_SMART_SHOPPER:
|
||||
break;
|
||||
case TVSHOW_POKEMON_TODAY_FAILED:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_FISHING_ADVICE:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_WORLD_OF_MASTERS:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
|
||||
case TVSHOW_TODAYS_RIVAL_TRAINER:
|
||||
@ -3876,37 +3893,48 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans
|
||||
case TVSHOW_FIND_THAT_GAMER:
|
||||
break;
|
||||
case TVSHOW_BREAKING_NEWS:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_SECRET_BASE_VISIT:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_LOTTO_WINNER:
|
||||
break;
|
||||
case TVSHOW_BATTLE_SEMINAR:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case TVSHOW_TRAINER_FAN_CLUB:
|
||||
break;
|
||||
case TVSHOW_CUTIES:
|
||||
break;
|
||||
case TVSHOW_FRONTIER:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species1, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species2, i);
|
||||
switch ((&gSaveBlock1Ptr->tvShows[i])->frontier.facility)
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species1;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species2;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.facility;
|
||||
switch (j)
|
||||
{
|
||||
case 3:
|
||||
case 4:
|
||||
break;
|
||||
case 1:
|
||||
case 5 ... 13:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3;
|
||||
sub_80F0B24(j, i);
|
||||
break;
|
||||
case 2:
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i);
|
||||
sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species4, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3;
|
||||
sub_80F0B24(j, i);
|
||||
j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species4;
|
||||
sub_80F0B24(j, i);
|
||||
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)
|
||||
{
|
||||
|
@ -187,7 +187,7 @@ static void sub_81DA700(void)
|
||||
{
|
||||
u16 *dst1, *dst2;
|
||||
|
||||
sub_8149F58(&dst1, &dst2);
|
||||
GetBg0TilesDst(&dst1, &dst2);
|
||||
LZ77UnCompVram(gUnknown_0862AD54, dst2);
|
||||
LZ77UnCompVram(gUnknown_0862AF30, dst1);
|
||||
LoadPalette(gUnknown_0862B53C, 0xF0, 0x20);
|
||||
|
Loading…
Reference in New Issue
Block a user