mirror of https://github.com/zeldaret/tmc.git
Match sub_080A69E0
This commit is contained in:
parent
4250eee610
commit
6b44daa6c0
|
|
@ -1,85 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #4
|
||||
adds r7, r0, #0
|
||||
adds r6, r1, #0
|
||||
orrs r0, r6
|
||||
cmp r0, #0
|
||||
beq _080A6A06
|
||||
adds r0, r7, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_080A6A80
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _080A6A06
|
||||
ldr r0, _080A6A0C @ =gMenu
|
||||
ldrb r1, [r0, #3]
|
||||
ldrb r2, [r3, #4]
|
||||
cmp r1, r2
|
||||
beq _080A6A10
|
||||
_080A6A06:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
b _080A6A74
|
||||
.align 2, 0
|
||||
_080A6A0C: .4byte gMenu
|
||||
_080A6A10:
|
||||
ldrb r1, [r0, #3]
|
||||
cmp r1, #7
|
||||
beq _080A6A26
|
||||
cmp r1, #7
|
||||
bgt _080A6A20
|
||||
cmp r1, #4
|
||||
beq _080A6A26
|
||||
b _080A6A48
|
||||
_080A6A20:
|
||||
cmp r1, #0xf
|
||||
beq _080A6A44
|
||||
b _080A6A48
|
||||
_080A6A26:
|
||||
ldrb r0, [r0, #3]
|
||||
movs r2, #7
|
||||
cmp r0, #4
|
||||
bne _080A6A30
|
||||
movs r2, #9
|
||||
_080A6A30:
|
||||
ldr r1, _080A6A40 @ =gAreaRoomHeaders
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, #2]
|
||||
subs r6, r6, r0
|
||||
b _080A6A48
|
||||
.align 2, 0
|
||||
_080A6A40: .4byte gAreaRoomHeaders
|
||||
_080A6A44:
|
||||
ldr r0, _080A6A78 @ =0xFFFFFEF8
|
||||
adds r7, r7, r0
|
||||
_080A6A48:
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #4
|
||||
subs r0, r7, r0
|
||||
movs r4, #0x64
|
||||
muls r0, r4, r0
|
||||
ldr r5, _080A6A7C @ =0x0000023A
|
||||
adds r1, r5, #0
|
||||
str r3, [sp]
|
||||
bl __divsi3
|
||||
adds r7, r0, #0
|
||||
ldr r3, [sp]
|
||||
ldrb r0, [r3, #1]
|
||||
lsls r0, r0, #4
|
||||
subs r0, r6, r0
|
||||
muls r0, r4, r0
|
||||
adds r1, r5, #0
|
||||
bl __divsi3
|
||||
adds r6, r0, #0
|
||||
lsls r0, r6, #0x10
|
||||
orrs r0, r7
|
||||
_080A6A74:
|
||||
add sp, #4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A6A78: .4byte 0xFFFFFEF8
|
||||
_080A6A7C: .4byte 0x0000023A
|
||||
.syntax divided
|
||||
|
|
@ -28,6 +28,7 @@ void sub_080A67C4(u32);
|
|||
void sub_080A68D4();
|
||||
u32 sub_080A69E0();
|
||||
void sub_080A6EE0(u32 param_1);
|
||||
struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2);
|
||||
|
||||
extern void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size);
|
||||
extern void LoadDungeonMap(void);
|
||||
|
|
@ -606,7 +607,40 @@ void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
|
|||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/subtask2/sub_080A69E0.inc", u32 sub_080A69E0())
|
||||
u32 sub_080A69E0(u32 param_1, u32 param_2) {
|
||||
const struct_08127F94* pbVar1;
|
||||
int iVar3;
|
||||
|
||||
if ((param_1 | param_2) == 0)
|
||||
return -1;
|
||||
|
||||
pbVar1 = sub_080A6A80(param_1, param_2);
|
||||
if (pbVar1 == NULL)
|
||||
return -1;
|
||||
|
||||
if (gMenu.field_0x3 != pbVar1->_4)
|
||||
return -1;
|
||||
|
||||
switch (gMenu.field_0x3) {
|
||||
case 4:
|
||||
case 7:
|
||||
if (gMenu.field_0x3 == 4) {
|
||||
iVar3 = 9;
|
||||
} else {
|
||||
iVar3 = 7;
|
||||
}
|
||||
param_2 -= gAreaRoomHeaders[iVar3]->map_y;
|
||||
break;
|
||||
break;
|
||||
case 15:
|
||||
param_1 -= 0x108;
|
||||
break;
|
||||
}
|
||||
|
||||
param_1 = (s32)((param_1 - pbVar1->_0 * 0x10) * 100) / 0x23a;
|
||||
param_2 = (s32)((param_2 - pbVar1->_1 * 0x10) * 100) / 0x23a;
|
||||
return (param_2 << 0x10) | param_1;
|
||||
}
|
||||
|
||||
struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2) {
|
||||
struct_08127F94* pbVar1;
|
||||
|
|
|
|||
Loading…
Reference in New Issue