mirror of https://github.com/zeldaret/tmc.git
Match sub_0801A8D0
This commit is contained in:
parent
e94528d9bf
commit
1c970613ec
|
|
@ -1,92 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
cmp r5, #0
|
||||
beq _0801A978
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
bl GetLayerByIndex
|
||||
adds r6, r0, #4
|
||||
cmp r4, #0
|
||||
bne _0801A92C
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
ldr r2, _0801A91C @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r4, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r4, r3
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r2, #8]
|
||||
adds r1, #8
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r6
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _0801A920 @ =0x00004055
|
||||
cmp r1, r0
|
||||
bne _0801A924
|
||||
subs r0, r4, #1
|
||||
b _0801A97A
|
||||
.align 2, 0
|
||||
_0801A91C: .4byte gRoomControls
|
||||
_0801A920: .4byte 0x00004055
|
||||
_0801A924:
|
||||
ldr r0, _0801A928 @ =0x00004056
|
||||
b _0801A96A
|
||||
.align 2, 0
|
||||
_0801A928: .4byte 0x00004056
|
||||
_0801A92C:
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r5, r0]
|
||||
ldr r3, _0801A960 @ =gRoomControls
|
||||
ldrh r0, [r3, #6]
|
||||
adds r0, #8
|
||||
subs r1, r1, r0
|
||||
asrs r4, r1, #4
|
||||
movs r2, #0x3f
|
||||
ands r4, r2
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r3, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r6
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _0801A964 @ =0x00004057
|
||||
cmp r1, r0
|
||||
bne _0801A968
|
||||
adds r0, r4, #0
|
||||
subs r0, #0x40
|
||||
b _0801A97A
|
||||
.align 2, 0
|
||||
_0801A960: .4byte gRoomControls
|
||||
_0801A964: .4byte 0x00004057
|
||||
_0801A968:
|
||||
ldr r0, _0801A974 @ =0x00004058
|
||||
_0801A96A:
|
||||
cmp r1, r0
|
||||
bne _0801A978
|
||||
adds r0, r4, #0
|
||||
b _0801A97A
|
||||
.align 2, 0
|
||||
_0801A974: .4byte 0x00004058
|
||||
_0801A978:
|
||||
ldr r0, _0801A97C @ =0x0000FFFF
|
||||
_0801A97A:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0801A97C: .4byte 0x0000FFFF
|
||||
.syntax divided
|
||||
|
|
@ -280,36 +280,36 @@ bool32 sub_0801A4F8(void) {
|
|||
|
||||
ASM_FUNC("asm/non_matching/beanstalkSubtask/sub_0801A570.inc", void sub_0801A570())
|
||||
|
||||
NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A8D0.inc", u32 sub_0801A8D0(Entity* this, u32 param_2)) {
|
||||
u32 sub_0801A8D0(Entity* this, u32 param_2) {
|
||||
u16* mapData;
|
||||
u32 tile;
|
||||
u32 position;
|
||||
|
||||
if (this != NULL) {
|
||||
mapData = GetLayerByIndex(this->collisionLayer)->mapData;
|
||||
if (param_2 == 0) {
|
||||
position = COORD_TO_TILE_OFFSET(this, 0, 8);
|
||||
tile = mapData[position];
|
||||
if (tile == 0x4055) {
|
||||
return position - 1;
|
||||
}
|
||||
if (tile == 0x4056) {
|
||||
return position;
|
||||
}
|
||||
} else {
|
||||
position = COORD_TO_TILE_OFFSET(this, 8, 0);
|
||||
tile = mapData[position];
|
||||
if (tile == 0x4057) {
|
||||
return position - 0x40;
|
||||
}
|
||||
if (tile == 0x4058) {
|
||||
return position;
|
||||
}
|
||||
if (this == NULL)
|
||||
return 0xffff;
|
||||
|
||||
mapData = GetLayerByIndex(this->collisionLayer)->mapData;
|
||||
if (param_2 == 0) {
|
||||
position = COORD_TO_TILE_OFFSET(this, 0, 8);
|
||||
tile = mapData[position];
|
||||
if (tile == 0x4055) {
|
||||
return position - 1;
|
||||
}
|
||||
if (tile == 0x4056) {
|
||||
return position;
|
||||
}
|
||||
} else {
|
||||
position = COORD_TO_TILE_OFFSET(this, 8, 0);
|
||||
tile = mapData[position];
|
||||
if (tile == 0x4057) {
|
||||
return position - 0x40;
|
||||
}
|
||||
if (tile == 0x4058) {
|
||||
return position;
|
||||
}
|
||||
}
|
||||
return 0xffff;
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
bool32 sub_0801A980(void) {
|
||||
u16 tileType;
|
||||
|
|
|
|||
Loading…
Reference in New Issue