mirror of https://github.com/zeldaret/tmc.git
Match sub_08078180
This commit is contained in:
parent
95df526a4f
commit
b9386e2861
|
|
@ -1,157 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _080781C8 @ =gUnk_0200AF00
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x2f
|
||||
ldrb r1, [r1]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08078192
|
||||
b _080782BC
|
||||
_08078192:
|
||||
movs r4, #0
|
||||
ldr r5, _080781CC @ =gPlayerState
|
||||
ldrb r0, [r5, #2]
|
||||
cmp r0, #0
|
||||
beq _0807819E
|
||||
b _080782B6
|
||||
_0807819E:
|
||||
ldr r0, [r5, #0x30]
|
||||
ldr r1, _080781D0 @ =0x00104D00
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080781AA
|
||||
b _080782B6
|
||||
_080781AA:
|
||||
ldrb r0, [r5, #5]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bhi _080781D4
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x2e
|
||||
ldrb r0, [r1]
|
||||
movs r4, #3
|
||||
cmp r0, #0
|
||||
bne _080781C4
|
||||
b _080782B6
|
||||
_080781C4:
|
||||
adds r4, r0, #0
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_080781C8: .4byte gUnk_0200AF00
|
||||
_080781CC: .4byte gPlayerState
|
||||
_080781D0: .4byte 0x00104D00
|
||||
_080781D4:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x2d
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080781C4
|
||||
bl sub_080784E4
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #8]
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08078278
|
||||
ldrb r0, [r1, #1]
|
||||
subs r0, #1
|
||||
cmp r0, #9
|
||||
bhi _080782B6
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078204 @ =_08078208
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078204: .4byte _08078208
|
||||
_08078208: @ jump table
|
||||
.4byte _08078230 @ case 0
|
||||
.4byte _080782B6 @ case 1
|
||||
.4byte _08078254 @ case 2
|
||||
.4byte _080782B6 @ case 3
|
||||
.4byte _08078254 @ case 4
|
||||
.4byte _08078254 @ case 5
|
||||
.4byte _08078230 @ case 6
|
||||
.4byte _0807823C @ case 7
|
||||
.4byte _08078260 @ case 8
|
||||
.4byte _0807826C @ case 9
|
||||
_08078230:
|
||||
movs r4, #7
|
||||
ldr r6, _08078238 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078238: .4byte gUnk_0200AF00
|
||||
_0807823C:
|
||||
ldr r0, _0807824C @ =gRoomVars
|
||||
ldrb r0, [r0, #6]
|
||||
ldr r6, _08078250 @ =gUnk_0200AF00
|
||||
cmp r0, #0
|
||||
bne _080782B6
|
||||
movs r4, #9
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_0807824C: .4byte gRoomVars
|
||||
_08078250: .4byte gUnk_0200AF00
|
||||
_08078254:
|
||||
movs r4, #6
|
||||
ldr r6, _0807825C @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_0807825C: .4byte gUnk_0200AF00
|
||||
_08078260:
|
||||
movs r4, #5
|
||||
ldr r6, _08078268 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078268: .4byte gUnk_0200AF00
|
||||
_0807826C:
|
||||
movs r4, #2
|
||||
ldr r6, _08078274 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078274: .4byte gUnk_0200AF00
|
||||
_08078278:
|
||||
bl sub_080789A8
|
||||
cmp r0, #0
|
||||
beq _080782A4
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xe
|
||||
beq _080782BC
|
||||
ldr r1, _080782A0 @ =gCarriedEntity
|
||||
ldrb r0, [r1, #1]
|
||||
movs r4, #9
|
||||
cmp r0, #2
|
||||
bne _080782B6
|
||||
ldr r0, [r1, #8]
|
||||
ldrb r0, [r0, #0x16]
|
||||
cmp r0, #1
|
||||
bne _080782B6
|
||||
movs r4, #8
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_080782A0: .4byte gCarriedEntity
|
||||
_080782A4:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _080782B6
|
||||
ldrb r0, [r5, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _080782B6
|
||||
movs r4, #0xc
|
||||
_080782B6:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x2c
|
||||
strb r4, [r0]
|
||||
_080782BC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
|
|
@ -750,7 +750,77 @@ void ForceSetPlayerState(u32 framestate) {
|
|||
sub_08078B48();
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/playerUtils/sub_08078180.inc", void sub_08078180())
|
||||
void sub_08078180(void) {
|
||||
u8 uVar1;
|
||||
u8 uVar3;
|
||||
struct_03003DF8* ptr;
|
||||
|
||||
if (gUnk_0200AF00.unk_2f != 0)
|
||||
return;
|
||||
|
||||
uVar1 = 0;
|
||||
if ((gPlayerState.jump_status == 0) &&
|
||||
((gPlayerState.flags & (PL_IN_HOLE | PL_FROZEN | PL_BURNING | PL_DISABLE_ITEMS | PL_DRUGGED)) == 0)) {
|
||||
if ((u8)(gPlayerState.heldObject - 1) < 4) {
|
||||
if (gUnk_0200AF00.unk_2e != 0) {
|
||||
uVar1 = gUnk_0200AF00.unk_2e;
|
||||
} else {
|
||||
uVar1 = 3;
|
||||
}
|
||||
} else {
|
||||
if (gUnk_0200AF00.unk_2d != 0) {
|
||||
uVar1 = gUnk_0200AF00.unk_2d;
|
||||
} else {
|
||||
ptr = sub_080784E4();
|
||||
if (ptr->entity->interactType == 0) {
|
||||
|
||||
switch (ptr->unk_1) {
|
||||
case 1:
|
||||
case 7:
|
||||
uVar1 = 7;
|
||||
break;
|
||||
case 8:
|
||||
if (gRoomVars.shopItemType == ITEM_NONE) {
|
||||
uVar1 = 9;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 5:
|
||||
case 6:
|
||||
uVar1 = 6;
|
||||
break;
|
||||
case 9:
|
||||
uVar1 = 5;
|
||||
break;
|
||||
case 10:
|
||||
uVar1 = 2;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (sub_080789A8()) {
|
||||
if (((gPlayerState.framestate != 0x0e))) {
|
||||
|
||||
if ((gCarriedEntity.unk_1 == 2) && ((gCarriedEntity.unk_8)->carryFlags == 1)) {
|
||||
uVar1 = 8;
|
||||
} else {
|
||||
uVar1 = 9;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if ((gPlayerState.framestate == 1) && (gPlayerState.mobility == 0)) {
|
||||
uVar1 = 0xc;
|
||||
} else {
|
||||
uVar1 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
gUnk_0200AF00.unk_2c = uVar1;
|
||||
}
|
||||
|
||||
bool32 sub_080782C0(void) {
|
||||
u8 tmp;
|
||||
|
|
|
|||
Loading…
Reference in New Issue