diff options
author | scnorton <scnorton@biociphers.org> | 2017-05-31 10:55:51 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-05-31 10:55:51 -0400 |
commit | 508d11da9b1503a8b40f0f34a2c2242d1ef73c7d (patch) | |
tree | 995790f6b973aaff29a6882cc53702093bd09b29 /src/use_pokeblock.c | |
parent | 18e060cd532fbe5678d08dd1a1386ae0763f6fc1 (diff) |
Continue decompilation of use_pokeblock.s
Diffstat (limited to 'src/use_pokeblock.c')
-rw-r--r-- | src/use_pokeblock.c | 72 |
1 files changed, 70 insertions, 2 deletions
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 78415cbd7..c45064b80 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -4,18 +4,30 @@ #include "global.h" #include "main.h" +#include "asm.h" +#include "sprite.h" #include "pokemon.h" #include "pokenav.h" +#include "palette.h" #include "use_pokeblock.h" asm(".text"); +void *gUnknown_02039308; +void *gUnknown_0203930C; +u8 gUnknown_02039310; + extern struct UnkPokenavStruct_Sub1 *gUnknown_02039304; -void launch_c3_walk_stairs_and_run_once(void *); +void launch_c3_walk_stairs_and_run_once(void (*const)(void)); +void sub_81361E4(void); +void sub_813622C(void); void sub_8136244(void); void sub_8136294(void); +void sub_81365C8(void); +void sub_81368A4(void); +u8 sub_81370E4(u8); -void sub_8136130(u32 a0, u32 a1) +void sub_8136130(void *a0, void *a1) { gUnknown_02039304 = &gUnknown_083DFEC4->unkD164; gUnknown_02039304->unk8 = a0; @@ -24,3 +36,59 @@ void sub_8136130(u32 a0, u32 a1) launch_c3_walk_stairs_and_run_once(sub_8136294); SetMainCallback2(sub_8136244); } + +void sub_8136174(void) +{ + gUnknown_02039304->unk8 = gUnknown_0203930C; + gUnknown_02039304->unk4 = gUnknown_02039308; + gUnknown_02039310 = sub_81370E4(gUnknown_02039310); + gUnknown_02039304->unk56 = gUnknown_02039310 < 4 ? 0 : 1; + gUnknown_083DFEC4->unkD162[0] = 2; + launch_c3_walk_stairs_and_run_once(sub_8136294); + SetMainCallback2(sub_81361E4); +} + +void sub_81361E4(void) +{ + gUnknown_02039304->unk0(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + if (gUnknown_02039304->unk0 == sub_81365C8) + { + REG_DISPCNT = 0; + gUnknown_02039304->unk50 = 0; + SetMainCallback2(sub_813622C); + } +} + +void sub_813622C(void) +{ + sub_81368A4(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_8136244(void) +{ + gUnknown_02039304->unk0(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_8136264(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + sub_80F5CDC(6); + sub_8089668(); +} + +void launch_c3_walk_stairs_and_run_once(void (*const func)(void)) +{ + gUnknown_02039304->unk0 = func; + gUnknown_02039304->unk50 = 0; +} |