mirror of https://github.com/zeldaret/tmc.git
Match sub_0806D164
This commit is contained in:
parent
51723cd2b6
commit
9d01adaa61
|
|
@ -1,52 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r5, _0806D1B8 @ =gRoomControls
|
||||
movs r1, #0xa
|
||||
ldrsh r2, [r5, r1]
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r0, r3]
|
||||
subs r2, r2, r1
|
||||
adds r2, #0xa0
|
||||
ldr r4, _0806D1BC @ =gScreen
|
||||
movs r3, #0xf
|
||||
adds r1, r2, #0
|
||||
ands r1, r3
|
||||
strh r1, [r4, #0x16]
|
||||
ldrh r1, [r5, #0xc]
|
||||
ldrh r0, [r0, #0x32]
|
||||
subs r1, r1, r0
|
||||
adds r1, #0xb0
|
||||
strh r1, [r4, #0x18]
|
||||
ldr r3, _0806D1C0 @ =gUnk_02006F00
|
||||
ldr r0, _0806D1C4 @ =0xFFFFC000
|
||||
adds r6, r3, r0
|
||||
movs r5, #0x20
|
||||
lsrs r2, r2, #4
|
||||
lsls r2, r2, #2
|
||||
adds r3, r2, r3
|
||||
adds r7, r4, #0
|
||||
ldr r1, _0806D1C8 @ =0x040000D4
|
||||
ldr r4, _0806D1CC @ =0x80000020
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #1
|
||||
_0806D1A0:
|
||||
str r3, [r1]
|
||||
str r6, [r1, #4]
|
||||
str r4, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
adds r3, r3, r2
|
||||
adds r6, #0x40
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0806D1A0
|
||||
movs r0, #1
|
||||
strh r0, [r7, #0x1a]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806D1B8: .4byte gRoomControls
|
||||
_0806D1BC: .4byte gScreen
|
||||
_0806D1C0: .4byte gUnk_02006F00
|
||||
_0806D1C4: .4byte 0xFFFFC000
|
||||
_0806D1C8: .4byte 0x040000D4
|
||||
_0806D1CC: .4byte 0x80000020
|
||||
.syntax divided
|
||||
|
|
@ -12,6 +12,7 @@ static const u16 goronSounds[] = {
|
|||
};
|
||||
|
||||
extern u8 gMapDataTopSpecial[];
|
||||
extern u8 gUnk_02006F00[];
|
||||
|
||||
void sub_0806D520(Entity*, u32);
|
||||
void sub_0806D41C(Entity*);
|
||||
|
|
@ -169,7 +170,27 @@ void sub_0806D138(unk_0806D138param_1* param_1, unk_0806D138param_2* param_2) {
|
|||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/bigGoron/sub_0806D164.inc", void sub_0806D164(Entity* this))
|
||||
void sub_0806D164(Entity* this) {
|
||||
u8* puVar1;
|
||||
u8* puVar2;
|
||||
u8* ptr;
|
||||
u32 xOffset;
|
||||
s32 index;
|
||||
|
||||
xOffset = ((s32)gRoomControls.scroll_x - this->x.HALF.HI) + 0xa0;
|
||||
gScreen.bg1.xOffset = (u16)xOffset & 0xf;
|
||||
gScreen.bg1.yOffset = (gRoomControls.scroll_y - this->y.HALF.HI) + 0xb0;
|
||||
ptr = gUnk_02006F00;
|
||||
puVar1 = &ptr[0];
|
||||
puVar2 = &ptr[-0x4000];
|
||||
|
||||
for (index = 0x20, ptr = &puVar1[(xOffset >> 4) * 4]; index != 0; index--) {
|
||||
DmaSet(3, ptr, puVar2, 0x80000020);
|
||||
ptr += 0x100;
|
||||
puVar2 += 0x40;
|
||||
}
|
||||
gScreen.bg1.updated = 1;
|
||||
}
|
||||
|
||||
void sub_0806D1D0(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue