summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trainer_tower.s91
-rw-r--r--src/trainer_tower.c35
-rw-r--r--sym_ewram.txt7
3 files changed, 33 insertions, 100 deletions
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
index 8082a016a..bbe0bc39e 100644
--- a/asm/trainer_tower.s
+++ b/asm/trainer_tower.s
@@ -5,97 +5,6 @@
.text
- thumb_func_start sub_815DBDC
-sub_815DBDC: @ 815DBDC
- push {r4,lr}
- ldr r4, _0815DBF0 @ =gUnknown_203F45C
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815DBF0: .4byte gUnknown_203F45C
- thumb_func_end sub_815DBDC
-
- thumb_func_start sub_815DBF4
-sub_815DBF4: @ 815DBF4
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, _0815DC28 @ =0x00004003
- adds r1, r4, 0
- bl VarSet
- ldr r5, _0815DC2C @ =gUnknown_203F45C
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- adds r1, 0x3D
- ldrb r1, [r1]
- bl sub_815E068
- cmp r4, 0
- bne _0815DC30
- ldr r0, [r5]
- adds r0, 0xC
- adds r1, r6, 0
- bl sub_815DEFC
- b _0815DC3A
- .align 2, 0
-_0815DC28: .4byte 0x00004003
-_0815DC2C: .4byte gUnknown_203F45C
-_0815DC30:
- ldr r0, [r5]
- adds r0, 0x24
- adds r1, r6, 0
- bl sub_815DEFC
-_0815DC3A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815DBF4
-
- thumb_func_start sub_815DC40
-sub_815DC40: @ 815DC40
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, _0815DC74 @ =0x00004003
- adds r1, r4, 0
- bl VarSet
- ldr r5, _0815DC78 @ =gUnknown_203F45C
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- adds r1, 0x3D
- ldrb r1, [r1]
- bl sub_815E068
- cmp r4, 0
- bne _0815DC7C
- ldr r0, [r5]
- adds r0, 0x18
- adds r1, r6, 0
- bl sub_815DEFC
- b _0815DC86
- .align 2, 0
-_0815DC74: .4byte 0x00004003
-_0815DC78: .4byte gUnknown_203F45C
-_0815DC7C:
- ldr r0, [r5]
- adds r0, 0x30
- adds r1, r6, 0
- bl sub_815DEFC
-_0815DC86:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815DC40
-
thumb_func_start sub_815DC8C
sub_815DC8C: @ 815DC8C
push {r4-r7,lr}
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 1df4dddcd..d9031635f 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -65,7 +65,9 @@ void sub_815D96C(void);
void sub_815DC8C(void); // setup
void sub_815DD2C(void); // teardown
void sub_815DD44(void);
+void sub_815DEFC(u16 * ecWords, u8 * dest);
void sub_815DF54(void);
+void sub_815E068(u8 battleType, u8 facilityClass);
void sub_815E160(void);
void sub_815E1C0(void);
void sub_815E1F0(void);
@@ -223,12 +225,7 @@ void sub_815DA54(void)
StringCopyN(gUnknown_203F45C->unk_00, gUnknown_203F458->unk_000C[gUnknown_203F458->unk_0000].unk_004[r10].unk_000, 11);
for (r9 = 0; r9 < 6; r9++)
- // r6 = r10 * 4
- // r12 = r10 * 328
- // r5 = (r10 + 1) * 328
{
- // r8 = *gUnknown_203F45C
- // r4 = r9 * 2
gUnknown_203F45C->unk_0C[r9] = gUnknown_203F458->unk_000C[gUnknown_203F458->unk_0000].unk_004[r10].unk_01A[r9];
gUnknown_203F45C->unk_18[r9] = gUnknown_203F458->unk_000C[gUnknown_203F458->unk_0000].unk_004[r10].unk_026[r9];
@@ -245,3 +242,31 @@ void sub_815DA54(void)
SetVBlankCounter1Ptr(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx]);
sub_815DD2C();
}
+
+void sub_815DBDC(void)
+{
+ Free(gUnknown_203F45C);
+ gUnknown_203F45C = NULL;
+}
+
+void sub_815DBF4(u8 * dest, u8 opponentIdx)
+// TTower_GetBeforeBattleMessage?
+{
+ VarSet(VAR_0x4003, opponentIdx);
+ sub_815E068(gUnknown_203F45C->unk_3C, gUnknown_203F45C->unk_3D);
+ if (opponentIdx == 0)
+ sub_815DEFC(gUnknown_203F45C->unk_0C, dest);
+ else
+ sub_815DEFC(gUnknown_203F45C->unk_24, dest);
+}
+
+void sub_815DC40(u8 * dest, u8 opponentIdx)
+// TTower_GetAfterBattleMessage?
+{
+ VarSet(VAR_0x4003, opponentIdx);
+ sub_815E068(gUnknown_203F45C->unk_3C, gUnknown_203F45C->unk_3D);
+ if (opponentIdx == 0)
+ sub_815DEFC(gUnknown_203F45C->unk_18, dest);
+ else
+ sub_815DEFC(gUnknown_203F45C->unk_30, dest);
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index d68a01f8f..f8e0df713 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1753,11 +1753,10 @@ gUnknown_203F450: @ 203F450
gUnknown_203F454: @ 203F454
.space 0x4
-gUnknown_203F458: @ 203F458
- .space 0x4
+ .include "src/trainer_tower.o"
-gUnknown_203F45C: @ 203F45C
- .space 0x8
+gUnknown_203F460: @ 203F460
+ .space 0x4
gUnknown_203F464: @ 203F464
.space 0x1