summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarijn van der Werf <marijn.vanderwerf@gmail.com>2017-05-08 22:15:03 +0200
committerYamaArashi <YamaArashi@users.noreply.github.com>2017-05-08 14:19:49 -0700
commitbb1440fde21a36209bf61160172d922e21fbef12 (patch)
tree561c4dc622abb8ebd309b8b300ca418f9c2668e6
parent00c64ddd66d1cf733f71d4e2104ae9f12108486d (diff)
Decompile sub_812BB10
-rw-r--r--asm/battle_anim_81258BC.s101
-rw-r--r--ld_script.txt2
-rw-r--r--src/battle_anim_81258BC.c50
3 files changed, 53 insertions, 100 deletions
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
index 8293435d0..86abad6f3 100644
--- a/asm/battle_anim_81258BC.s
+++ b/asm/battle_anim_81258BC.s
@@ -1595,106 +1595,7 @@ _0812BB0C:
bx r0
thumb_func_end dp01t_11_6_message_for_player_only
- thumb_func_start sub_812BB10
-sub_812BB10: @ 812BB10
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0812BBCC @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0812BBD0 @ =gUnknown_030042A0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0812BBD4 @ =gUnknown_03004210
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _0812BBD8 @ =gUnknown_03004330
- ldr r0, _0812BBDC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BBE0 @ =bx_battle_menu_t6_2
- str r1, [r0]
- ldr r1, _0812BBE4 @ =gUnknown_08400D15
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0812BBE8 @ =0x0000ffff
- ldr r3, _0812BBEC @ =0x00002d9f
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0812BB84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812BB84
- ldr r1, _0812BBF0 @ =gUnknown_02024E60
- ldr r0, _0812BBDC @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0812BBF4 @ =gUnknown_08400CBB
- bl get_battle_strings_
- ldr r4, _0812BBD4 @ =gUnknown_03004210
- ldr r1, _0812BBF8 @ =gUnknown_020238CC
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BBCC: .4byte gUnknown_030042A4
-_0812BBD0: .4byte gUnknown_030042A0
-_0812BBD4: .4byte gUnknown_03004210
-_0812BBD8: .4byte gUnknown_03004330
-_0812BBDC: .4byte gUnknown_02024A60
-_0812BBE0: .4byte bx_battle_menu_t6_2
-_0812BBE4: .4byte gUnknown_08400D15
-_0812BBE8: .4byte 0x0000ffff
-_0812BBEC: .4byte 0x00002d9f
-_0812BBF0: .4byte gUnknown_02024E60
-_0812BBF4: .4byte gUnknown_08400CBB
-_0812BBF8: .4byte gUnknown_020238CC
- thumb_func_end sub_812BB10
+.section .text_812BBFC
thumb_func_start sub_812BBFC
sub_812BBFC: @ 812BBFC
diff --git a/ld_script.txt b/ld_script.txt
index 7945d61a7..f1d398cf0 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -244,6 +244,8 @@ SECTIONS {
asm/field_effect_helpers.o(.text);
asm/contest_ai.o(.text);
asm/battle_anim_81258BC.o(.text);
+ src/battle_anim_81258BC.o(.text);
+ asm/battle_anim_81258BC.o(.text_812BBFC);
src/fldeff_sweetscent.o(.text);
asm/battle_anim_812C144.o(.text);
asm/learn_move.o(.text);
diff --git a/src/battle_anim_81258BC.c b/src/battle_anim_81258BC.c
new file mode 100644
index 000000000..42a685f4a
--- /dev/null
+++ b/src/battle_anim_81258BC.c
@@ -0,0 +1,50 @@
+#include "global.h"
+#include "asm.h"
+#include "text.h"
+#include "menu_cursor.h"
+
+extern struct Window gUnknown_03004210;
+extern u8 gUnknown_020238CC[];
+extern u8 gUnknown_02024E60[];
+
+extern const u8 gUnknown_08400CBB[];
+extern u8 gUnknown_02024A60;
+extern const u8 gUnknown_08400D15[];
+
+extern void* gUnknown_03004330[];
+extern u16 gUnknown_030042A0;
+extern u16 gUnknown_030042A4;
+
+void bx_battle_menu_t6_2(void);
+
+#if ENGLISH
+#define SUB_812BB10_TILE_DATA_OFFSET 440
+#elif GERMAN
+#define SUB_812BB10_TILE_DATA_OFFSET 444
+#endif
+
+void sub_812BB10(void) {
+ int i;
+
+ gUnknown_030042A4 = 0;
+ gUnknown_030042A0 = 160;
+ gUnknown_03004210.paletteNum = 0;
+ FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
+ FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
+ gUnknown_03004330[gUnknown_02024A60] = bx_battle_menu_t6_2;
+
+ InitWindow(&gUnknown_03004210, gUnknown_08400D15, 400, 18, 35);
+ sub_8002F44(&gUnknown_03004210);
+ sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
+
+ for (i = 0; i < 4; i++)
+ {
+ nullsub_8(i);
+ }
+
+ sub_802E3E4(gUnknown_02024E60[gUnknown_02024A60], 0);
+ get_battle_strings_((u8 *) gUnknown_08400CBB);
+
+ InitWindow(&gUnknown_03004210, gUnknown_020238CC, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
+ sub_8002F44(&gUnknown_03004210);
+} \ No newline at end of file