diff options
-rw-r--r-- | asm/battle_tower.s | 105 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/battle_tower.c | 58 |
3 files changed, 59 insertions, 105 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s index cd8eede60..973486f64 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -6,111 +6,6 @@ .text - thumb_func_start sub_8134548 -sub_8134548: @ 8134548 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_0813454E: - ldr r0, _08134568 @ =gSaveBlock2 - ldr r1, _0813456C @ =0x00000556 - adds r0, r1 - adds r0, r5, r0 - ldrb r0, [r0] - cmp r0, 0x6 - bhi _08134590 - lsls r0, 2 - ldr r1, _08134570 @ =_08134574 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08134568: .4byte gSaveBlock2 -_0813456C: .4byte 0x00000556 -_08134570: .4byte _08134574 - .align 2, 0 -_08134574: - .4byte _08134590 - .4byte _081345A8 - .4byte _081345C8 - .4byte _081345D8 - .4byte _081345B8 - .4byte _081345C0 - .4byte _081345D8 -_08134590: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_813461C - cmp r4, 0 - bne _081345D8 - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x5 - bl VarSet - b _081345D8 -_081345A8: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_813461C - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x1 - b _081345CE -_081345B8: - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x2 - b _081345CE -_081345C0: - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x3 - b _081345CE -_081345C8: - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x4 -_081345CE: - bl VarSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081345D8: - adds r5, 0x1 - cmp r5, 0x1 - ble _0813454E - ldr r1, _08134610 @ =gSaveBlock2 - ldr r2, _08134614 @ =0x00000556 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - beq _081345EE - cmp r0, 0x6 - bne _08134606 -_081345EE: - ldr r2, _08134618 @ =0x00000557 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - beq _081345FC - cmp r0, 0x6 - bne _08134606 -_081345FC: - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x5 - bl VarSet -_08134606: - bl sub_8135C44 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08134610: .4byte gSaveBlock2 -_08134614: .4byte 0x00000556 -_08134618: .4byte 0x00000557 - thumb_func_end sub_8134548 - thumb_func_start sub_813461C sub_813461C: @ 813461C lsls r0, 24 diff --git a/ld_script.txt b/ld_script.txt index a72a43f17..cf443f78c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -231,6 +231,7 @@ SECTIONS { src/field/fldeff_softboiled.o(.text); src/field/decoration_inventory.o(.text); src/field/roamer.o(.text); + src/battle_tower.o(.text); asm/battle_tower.o(.text); src/field/use_pokeblock.o(.text); src/battle/battle_controller_wally.o(.text); diff --git a/src/battle_tower.c b/src/battle_tower.c new file mode 100644 index 000000000..51f4ca93d --- /dev/null +++ b/src/battle_tower.c @@ -0,0 +1,58 @@ +#include "global.h" +#include "battle_tower.h" +#include "event_data.h" +#include "vars.h" + + +extern void sub_813461C(u8 levelType); +extern void sub_8135C44(void); + + +void sub_8134548(void) +{ + u8 var1 = 0; + s32 levelType; + + for (levelType = 0; levelType < 2; levelType++) + { + switch (gSaveBlock2.filler_A8.var_4AE[levelType]) + { + case 0: + default: + sub_813461C(levelType); + if (!var1) + { + VarSet(VAR_0x4000, 5); + } + break; + case 1: + sub_813461C(levelType); + VarSet(VAR_0x4000, 1); + var1++; + break; + case 4: + VarSet(VAR_0x4000, 2); + var1++; + break; + case 5: + VarSet(VAR_0x4000, 3); + var1++; + break; + case 2: + VarSet(VAR_0x4000, 4); + var1++; + break; + case 3: + case 6: + break; + } + } + + if ((gSaveBlock2.filler_A8.var_4AE[0] == 3 || gSaveBlock2.filler_A8.var_4AE[0] == 6) + && (gSaveBlock2.filler_A8.var_4AE[1] == 3 || gSaveBlock2.filler_A8.var_4AE[1] == 6)) + { + VarSet(VAR_0x4000, 5); + } + + sub_8135C44(); +} |