summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKurausukun <lord.uber1@gmail.com>2020-10-25 23:52:39 -0400
committerKurausukun <lord.uber1@gmail.com>2020-10-25 23:52:39 -0400
commitc7d624edeb396d8f7aaff0448f57ca8b1ca7f228 (patch)
treee994329d58e25fea526733d0751f9786307eee65 /src
parent077a2c23dc499bdb6a0a0ca8dd4fd5d5022dfa6b (diff)
re-match sub_81D5F58
Diffstat (limited to 'src')
-rw-r--r--src/trainer_hill.c62
1 files changed, 5 insertions, 57 deletions
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index c5aea14d9..6bbac91ca 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -672,70 +672,18 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void)
return TRUE;
}
-// Functionally equivalent.
-#ifdef NONMATCHING
static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3)
{
- u32 var0, var1, var2, var3;
+ u8 var0;
+ u16 var1;
+ u16 var2;
var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit)) & 1;
- var1 = sHillData->floors[floorId].display.data[arg2 * arg3 + bit];
- var3 = 0x200;
+ var1 = sHillData->floors[floorId].display.data[arg2 * arg3 + bit] + 0x200;
var2 = 0x3000;
- return ((var0 << 10) | var2) | (var1 | var3);
+ return (((var0 << 10) & 0xc00) | var2) | (var1 & 0x3ff);
}
-#else
-NAKED
-static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3)
-{
- asm_unified("\n\
- push {r4,r5,lr}\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldr r4, =sHillData\n\
- ldr r4, [r4]\n\
- mov r12, r4\n\
- lsls r4, r2, 1\n\
- lsls r5, r0, 4\n\
- subs r5, r0\n\
- lsls r5, 3\n\
- subs r5, r0\n\
- lsls r5, 3\n\
- adds r4, r5\n\
- movs r0, 0xE8\n\
- lsls r0, 2\n\
- add r0, r12\n\
- adds r0, r4\n\
- ldrh r0, [r0]\n\
- movs r4, 0xF\n\
- subs r4, r1\n\
- asrs r0, r4\n\
- movs r4, 0x1\n\
- ands r0, r4\n\
- muls r2, r3\n\
- adds r2, r1\n\
- adds r2, r5\n\
- movs r1, 0xA8\n\
- lsls r1, 2\n\
- add r1, r12\n\
- adds r1, r2\n\
- ldrb r1, [r1]\n\
- movs r2, 0x80\n\
- lsls r2, 2\n\
- adds r3, r2, 0\n\
- movs r2, 0xC0\n\
- lsls r2, 6\n\
- lsls r0, 10\n\
- orrs r0, r2\n\
- orrs r1, r3\n\
- orrs r0, r1\n\
- pop {r4,r5}\n\
- pop {r1}\n\
- bx r1\n\
- .pool");
-}
-#endif // NONMATCHING
void GenerateTrainerHillFloorLayout(u16 *mapArg)
{