summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-05-31 10:55:51 -0400
committerscnorton <scnorton@biociphers.org>2017-05-31 10:55:51 -0400
commit508d11da9b1503a8b40f0f34a2c2242d1ef73c7d (patch)
tree995790f6b973aaff29a6882cc53702093bd09b29 /src
parent18e060cd532fbe5678d08dd1a1386ae0763f6fc1 (diff)
Continue decompilation of use_pokeblock.s
Diffstat (limited to 'src')
-rw-r--r--src/use_pokeblock.c72
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;
+}