Decompile post_battle_event_funcs
This commit is contained in:
@@ -1,121 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start Special_HallOfFame
|
|
||||||
Special_HallOfFame: @ 80CA2E4
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
bl sp000_heal_pokemon
|
|
||||||
ldr r4, _080CA304 @ =0x0000082c
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
cmp r1, 0x1
|
|
||||||
bne _080CA30C
|
|
||||||
ldr r0, _080CA308 @ =gHasHallOfFameRecords
|
|
||||||
strb r1, [r0]
|
|
||||||
b _080CA318
|
|
||||||
.align 2, 0
|
|
||||||
_080CA304: .4byte 0x0000082c
|
|
||||||
_080CA308: .4byte gHasHallOfFameRecords
|
|
||||||
_080CA30C:
|
|
||||||
ldr r1, _080CA3B0 @ =gHasHallOfFameRecords
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl FlagSet
|
|
||||||
_080CA318:
|
|
||||||
movs r0, 0x1
|
|
||||||
bl GetGameStat
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080CA33A
|
|
||||||
ldr r0, _080CA3B4 @ =gSaveBlock2Ptr
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldrh r1, [r2, 0xE]
|
|
||||||
lsls r1, 16
|
|
||||||
ldrb r0, [r2, 0x10]
|
|
||||||
lsls r0, 8
|
|
||||||
orrs r1, r0
|
|
||||||
ldrb r0, [r2, 0x11]
|
|
||||||
orrs r1, r0
|
|
||||||
movs r0, 0x1
|
|
||||||
bl SetGameStat
|
|
||||||
_080CA33A:
|
|
||||||
bl sub_804C1AC
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_8055738
|
|
||||||
movs r6, 0
|
|
||||||
movs r5, 0
|
|
||||||
mov r7, sp
|
|
||||||
_080CA34A:
|
|
||||||
movs r0, 0x64
|
|
||||||
adds r1, r5, 0
|
|
||||||
muls r1, r0
|
|
||||||
ldr r0, _080CA3B8 @ =gPlayerParty
|
|
||||||
adds r4, r1, r0
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x5
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080CA388
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x6
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080CA388
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x43
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080CA388
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r7]
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x43
|
|
||||||
mov r2, sp
|
|
||||||
bl SetMonData
|
|
||||||
movs r6, 0x1
|
|
||||||
_080CA388:
|
|
||||||
adds r5, 0x1
|
|
||||||
cmp r5, 0x5
|
|
||||||
ble _080CA34A
|
|
||||||
cmp r6, 0x1
|
|
||||||
bne _080CA39E
|
|
||||||
movs r0, 0x2A
|
|
||||||
bl IncrementGameStat
|
|
||||||
ldr r0, _080CA3BC @ =0x0000083b
|
|
||||||
bl FlagSet
|
|
||||||
_080CA39E:
|
|
||||||
ldr r0, _080CA3C0 @ =CB2_DoHallOfFameScreen
|
|
||||||
bl SetMainCallback2
|
|
||||||
movs r0, 0
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_080CA3B0: .4byte gHasHallOfFameRecords
|
|
||||||
_080CA3B4: .4byte gSaveBlock2Ptr
|
|
||||||
_080CA3B8: .4byte gPlayerParty
|
|
||||||
_080CA3BC: .4byte 0x0000083b
|
|
||||||
_080CA3C0: .4byte CB2_DoHallOfFameScreen
|
|
||||||
thumb_func_end Special_HallOfFame
|
|
||||||
|
|
||||||
thumb_func_start sp0C8_whiteout_maybe
|
|
||||||
sp0C8_whiteout_maybe: @ 80CA3C4
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _080CA3D4 @ =CB2_WhiteOut
|
|
||||||
bl SetMainCallback2
|
|
||||||
movs r0, 0
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_080CA3D4: .4byte CB2_WhiteOut
|
|
||||||
thumb_func_end sp0C8_whiteout_maybe
|
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
|
||||||
@@ -28,5 +28,6 @@ void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey);
|
|||||||
void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey);
|
void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey);
|
||||||
void ClearContinueGameWarpStatus2(void);
|
void ClearContinueGameWarpStatus2(void);
|
||||||
void SetContinueGameWarpStatusToDynamicWarp(void);
|
void SetContinueGameWarpStatusToDynamicWarp(void);
|
||||||
|
void sub_804C1AC(void);
|
||||||
|
|
||||||
#endif // GUARD_LOAD_SAVE_H
|
#endif // GUARD_LOAD_SAVE_H
|
||||||
|
|||||||
@@ -146,4 +146,6 @@ void c2_8056854(void);
|
|||||||
void sub_8054F38(u32 newKey);
|
void sub_8054F38(u32 newKey);
|
||||||
void sub_8055778(int);
|
void sub_8055778(int);
|
||||||
|
|
||||||
|
void sub_8055738(u8 loc);
|
||||||
|
|
||||||
#endif //GUARD_OVERWORLD_H
|
#endif //GUARD_OVERWORLD_H
|
||||||
|
|||||||
+1
-1
@@ -186,7 +186,7 @@ SECTIONS {
|
|||||||
src/fldeff_rocksmash.o(.text);
|
src/fldeff_rocksmash.o(.text);
|
||||||
src/fldeff_dig.o(.text);
|
src/fldeff_dig.o(.text);
|
||||||
asm/fldeff_flash.o(.text);
|
asm/fldeff_flash.o(.text);
|
||||||
asm/post_battle_event_funcs.o(.text);
|
src/post_battle_event_funcs.o(.text);
|
||||||
src/prof_pc.o(.text);
|
src/prof_pc.o(.text);
|
||||||
src/hof_pc.o(.text);
|
src/hof_pc.o(.text);
|
||||||
src/field_specials.o(.text);
|
src/field_specials.o(.text);
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "script_pokemon_util_80A0058.h"
|
||||||
|
#include "event_data.h"
|
||||||
|
#include "credits.h"
|
||||||
|
#include "overworld.h"
|
||||||
|
#include "hall_of_fame.h"
|
||||||
|
#include "load_save.h"
|
||||||
|
#include "constants/flags.h"
|
||||||
|
#include "constants/spawn_points.h"
|
||||||
|
|
||||||
|
bool8 Special_HallOfFame(void)
|
||||||
|
{
|
||||||
|
bool8 ribbonState;
|
||||||
|
bool8 *r7;
|
||||||
|
int i;
|
||||||
|
bool8 gaveAtLeastOneRibbon;
|
||||||
|
sp000_heal_pokemon();
|
||||||
|
if (FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE)
|
||||||
|
{
|
||||||
|
gHasHallOfFameRecords = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gHasHallOfFameRecords = FALSE;
|
||||||
|
FlagSet(FLAG_SYS_GAME_CLEAR);
|
||||||
|
}
|
||||||
|
if (GetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME) == 0)
|
||||||
|
{
|
||||||
|
SetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME, (gSaveBlock2Ptr->playTimeHours << 16) | (gSaveBlock2Ptr->playTimeMinutes << 8) | gSaveBlock2Ptr->playTimeSeconds);
|
||||||
|
}
|
||||||
|
sub_804C1AC();
|
||||||
|
sub_8055738(SPAWN_PALLET_TOWN);
|
||||||
|
gaveAtLeastOneRibbon = FALSE;
|
||||||
|
for (i = 0, r7 = &ribbonState; i < PARTY_SIZE; i++)
|
||||||
|
{
|
||||||
|
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG))
|
||||||
|
{
|
||||||
|
if (!GetMonData(&gPlayerParty[i], MON_DATA_CHAMPION_RIBBON))
|
||||||
|
{
|
||||||
|
*r7 = TRUE;
|
||||||
|
SetMonData(&gPlayerParty[i], MON_DATA_CHAMPION_RIBBON, &ribbonState);
|
||||||
|
gaveAtLeastOneRibbon = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gaveAtLeastOneRibbon == TRUE)
|
||||||
|
{
|
||||||
|
IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
|
||||||
|
FlagSet(FLAG_SYS_RIBBON_GET);
|
||||||
|
}
|
||||||
|
SetMainCallback2(CB2_DoHallOfFameScreen);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sp0C8_whiteout_maybe(void)
|
||||||
|
{
|
||||||
|
SetMainCallback2(CB2_WhiteOut);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user