mirror of https://github.com/zeldaret/tmc.git
hiddenLadderDown.c
This commit is contained in:
parent
cc5bb0133b
commit
e8bf4aa165
|
|
@ -5,161 +5,3 @@
|
|||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start HiddenLadderDown
|
||||
HiddenLadderDown: @ 0x08091EF4
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xc]
|
||||
cmp r0, #1
|
||||
bhi _08091F0E
|
||||
ldr r0, _08091F10 @ =gUnk_08122604
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_08091F0E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08091F10: .4byte gUnk_08122604
|
||||
|
||||
thumb_func_start sub_08091F14
|
||||
sub_08091F14: @ 0x08091F14
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ldrb r0, [r3]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x58
|
||||
strb r2, [r0]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _08091FEC @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x70
|
||||
strh r1, [r5]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08091FEA
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #0xd1
|
||||
lsls r0, r0, #1
|
||||
ldrh r1, [r5]
|
||||
subs r1, #0x41
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
ldr r0, _08091FF0 @ =0x000001A3
|
||||
ldrh r1, [r5]
|
||||
subs r1, #0x40
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
movs r0, #0xd2
|
||||
lsls r0, r0, #1
|
||||
ldrh r1, [r5]
|
||||
subs r1, #0x3f
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
ldr r0, _08091FF4 @ =0x000001A5
|
||||
ldrh r1, [r5]
|
||||
subs r1, #1
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
movs r0, #0xd3
|
||||
lsls r0, r0, #1
|
||||
ldrh r1, [r5]
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
ldr r0, _08091FF8 @ =0x000001A7
|
||||
ldrh r1, [r5]
|
||||
adds r1, #1
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
movs r0, #0xd4
|
||||
lsls r0, r0, #1
|
||||
ldrh r1, [r5]
|
||||
adds r1, #0x3f
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
ldr r0, _08091FFC @ =0x000001A9
|
||||
ldrh r1, [r5]
|
||||
adds r1, #0x40
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
movs r0, #0xd5
|
||||
lsls r0, r0, #1
|
||||
ldrh r1, [r5]
|
||||
adds r1, #0x41
|
||||
ldrb r2, [r4]
|
||||
bl SetTileType
|
||||
_08091FEA:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08091FEC: .4byte gRoomControls
|
||||
_08091FF0: .4byte 0x000001A3
|
||||
_08091FF4: .4byte 0x000001A5
|
||||
_08091FF8: .4byte 0x000001A7
|
||||
_08091FFC: .4byte 0x000001A9
|
||||
|
||||
thumb_func_start sub_08092000
|
||||
sub_08092000: @ 0x08092000
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x70
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
movs r1, #0xd3
|
||||
lsls r1, r1, #1
|
||||
cmp r0, r1
|
||||
bne _08092034
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl SetFlag
|
||||
_08092034:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -764,7 +764,7 @@ SECTIONS {
|
|||
src/object/minecart.o(.text);
|
||||
asm/minecart.o(.text);
|
||||
src/object/thoughtBubble.o(.text);
|
||||
asm/hiddenLadderDown.o(.text);
|
||||
src/object/hiddenLadderDown.o(.text);
|
||||
asm/gentariCurtains.o(.text);
|
||||
asm/lavaPlatform.o(.text);
|
||||
asm/object5A.o(.text);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "room.h"
|
||||
#include "flags.h"
|
||||
|
||||
extern void (*const gUnk_08122604[])(Entity*);
|
||||
|
||||
void HiddenLadderDown(Entity* this) {
|
||||
if (this->action < 2) {
|
||||
gUnk_08122604[this->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08091F14(Entity* this) {
|
||||
u16* puVar3;
|
||||
|
||||
this->action = 1;
|
||||
this->spritePriority.b0 = 7;
|
||||
this->animIndex = 0;
|
||||
this->field_0x70.HALF.LO = COORD_TO_TILE(this);
|
||||
puVar3 = &this->field_0x70.HALF.LO;
|
||||
if (CheckFlags(this->field_0x86) != 0) {
|
||||
this->action = 2;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
SetTileType(0x1a2, *puVar3 - 0x41, this->collisionLayer);
|
||||
SetTileType(0x1a3, *puVar3 - 0x40, this->collisionLayer);
|
||||
SetTileType(0x1a4, *puVar3 - 0x3f, this->collisionLayer);
|
||||
SetTileType(0x1a5, *puVar3 - 1, this->collisionLayer);
|
||||
SetTileType(0x1a6, *puVar3, this->collisionLayer);
|
||||
SetTileType(0x1a7, *puVar3 + 1, this->collisionLayer);
|
||||
SetTileType(0x1a8, *puVar3 + 0x3f, this->collisionLayer);
|
||||
SetTileType(0x1a9, *puVar3 + 0x40, this->collisionLayer);
|
||||
SetTileType(0x1aa, *puVar3 + 0x41, this->collisionLayer);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08092000(Entity* this) {
|
||||
if (GetTileType(*(u16*)&this->field_0x70.HALF.LO, this->collisionLayer) == 0x1a6) {
|
||||
this->action = 2;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
SetFlag(this->field_0x86);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue