summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-23 22:17:31 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-23 22:17:31 -0500
commitb3f1b2c2541b6ec3a8b5af2d4a3ca151f69839e4 (patch)
treec110aaf8a130ed8790cc1014855e0d4712c864a8
parentd5d220bc5c952aae723a0c0849bfbbdb17dff70a (diff)
quest_log_battle, 3 (nonmatching)
-rw-r--r--asm/quest_log_battle.s51
-rw-r--r--ld_script.txt1
-rw-r--r--src/quest_log_battle.c65
3 files changed, 62 insertions, 55 deletions
diff --git a/asm/quest_log_battle.s b/asm/quest_log_battle.s
deleted file mode 100644
index 2219633bb..000000000
--- a/asm/quest_log_battle.s
+++ /dev/null
@@ -1,51 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_812C334
-sub_812C334: @ 812C334
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r3, _0812C35C @ =gLinkPlayers
- ldr r4, _0812C360 @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0xB5
- ldrb r2, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x18]
- movs r0, 0x2
- movs r5, 0
- eors r2, r0
-_0812C352:
- ldrh r0, [r3, 0x18]
- cmp r2, r0
- bne _0812C364
- str r5, [r6]
- b _0812C370
- .align 2, 0
-_0812C35C: .4byte gLinkPlayers
-_0812C360: .4byte gBattleStruct
-_0812C364:
- ldr r0, [r4]
- adds r0, 0xB5
- ldrb r0, [r0]
- cmp r5, r0
- beq _0812C370
- stm r1!, {r5}
-_0812C370:
- adds r3, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _0812C352
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812C334
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 070eb444a..67f21c48f 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -226,7 +226,6 @@ SECTIONS {
asm/union_room_chat.o(.text);
asm/help_system_812B1E0.o(.text);
src/quest_log_battle.o(.text);
- asm/quest_log_battle.o(.text);
asm/fame_checker.o(.text);
asm/menu2.o(.text);
asm/oak_speech.o(.text);
diff --git a/src/quest_log_battle.c b/src/quest_log_battle.c
index b6d6c88f3..f4d66f4b7 100644
--- a/src/quest_log_battle.c
+++ b/src/quest_log_battle.c
@@ -22,7 +22,7 @@ struct QuestLogStruct_WildBattleRecord
u8 v4;
};
-void sub_812C334(u32 *, u32 *);
+void sub_812C334(s32 *, s32 *);
void sub_812BFDC(void)
{
@@ -107,8 +107,8 @@ struct QuestLogStruct_LinkBattleRecord
void sub_812C224(void)
{
- u32 sp0;
- u32 sp4[2];
+ s32 sp0;
+ s32 sp4[2];
u16 r8;
s32 r3;
u32 r0;
@@ -148,3 +148,62 @@ void sub_812C224(void)
Free(r5);
}
}
+
+#ifdef NONMATCHING
+void sub_812C334(s32 * a0, s32 * a1)
+{
+ s32 r5;
+ u8 r2 = gLinkPlayers[gBattleStruct->field_B5].id;
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ if ((r2 ^ 2) == gLinkPlayers[r5].id)
+ *a0 = r5;
+ else if (r5 != gBattleStruct->field_B5)
+ *a1++ = r5;
+ }
+}
+#else
+NAKED
+void sub_812C334(s32 * a0, s32 * a1)
+{
+ asm_unified("\tpush {r4-r6,lr}\n"
+ "\tadds r6, r0, 0\n"
+ "\tldr r3, _0812C35C @ =gLinkPlayers\n"
+ "\tldr r4, _0812C360 @ =gBattleStruct\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0xB5\n"
+ "\tldrb r2, [r0]\n"
+ "\tlsls r0, r2, 3\n"
+ "\tsubs r0, r2\n"
+ "\tlsls r0, 2\n"
+ "\tadds r0, r3\n"
+ "\tldrb r2, [r0, 0x18]\n"
+ "\tmovs r0, 0x2\n"
+ "\tmovs r5, 0\n"
+ "\teors r2, r0\n"
+ "_0812C352:\n"
+ "\tldrh r0, [r3, 0x18]\n"
+ "\tcmp r2, r0\n"
+ "\tbne _0812C364\n"
+ "\tstr r5, [r6]\n"
+ "\tb _0812C370\n"
+ "\t.align 2, 0\n"
+ "_0812C35C: .4byte gLinkPlayers\n"
+ "_0812C360: .4byte gBattleStruct\n"
+ "_0812C364:\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0xB5\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r5, r0\n"
+ "\tbeq _0812C370\n"
+ "\tstm r1!, {r5}\n"
+ "_0812C370:\n"
+ "\tadds r3, 0x1C\n"
+ "\tadds r5, 0x1\n"
+ "\tcmp r5, 0x3\n"
+ "\tble _0812C352\n"
+ "\tpop {r4-r6}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+#endif // NONMATCHING