mirror of https://github.com/zeldaret/tmc.git
Merge pull request #588 from hatal175/sub_08038304
This commit is contained in:
commit
5b090fd3f3
|
@ -1,85 +0,0 @@
|
||||||
.syntax unified
|
|
||||||
push {r4, r5, r6, r7, lr}
|
|
||||||
mov r7, sl
|
|
||||||
mov r6, sb
|
|
||||||
mov r5, r8
|
|
||||||
push {r5, r6, r7}
|
|
||||||
sub sp, #8
|
|
||||||
ldr r1, _080465AC @ =gMapTop+0x5004
|
|
||||||
ldr r2, _080465B0 @ =0xFFFFBCB0
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldr r3, _080465B4 @ =0xFFFFECB0
|
|
||||||
adds r2, r1, r3
|
|
||||||
ldr r7, _080465B8 @ =0x00006658
|
|
||||||
adds r7, r1, r7
|
|
||||||
str r7, [sp, #4]
|
|
||||||
ldr r3, _080465BC @ =0xFFFFD658
|
|
||||||
adds r6, r1, r3
|
|
||||||
movs r1, #0x10
|
|
||||||
_0804653A:
|
|
||||||
movs r5, #0x10
|
|
||||||
movs r7, #0x80
|
|
||||||
adds r7, r7, r0
|
|
||||||
mov sl, r7
|
|
||||||
adds r3, r2, #0
|
|
||||||
adds r3, #0x80
|
|
||||||
str r3, [sp]
|
|
||||||
ldr r7, [sp, #4]
|
|
||||||
adds r7, #0x40
|
|
||||||
mov r8, r7
|
|
||||||
movs r3, #0x40
|
|
||||||
adds r3, r3, r6
|
|
||||||
mov sb, r3
|
|
||||||
subs r1, #1
|
|
||||||
mov ip, r1
|
|
||||||
adds r3, r0, #0
|
|
||||||
adds r3, #0x20
|
|
||||||
adds r4, r2, #0
|
|
||||||
adds r4, #0x20
|
|
||||||
_08046560:
|
|
||||||
ldrh r0, [r3]
|
|
||||||
strh r0, [r4]
|
|
||||||
ldrh r0, [r3]
|
|
||||||
lsls r0, r0, #1
|
|
||||||
ldr r7, _080465AC @ =gMapTop+0x5004
|
|
||||||
adds r0, r0, r7
|
|
||||||
ldrh r1, [r0]
|
|
||||||
ldr r0, [sp, #4]
|
|
||||||
adds r2, r0, r5
|
|
||||||
ldr r7, _080465C0 @ =gUnk_080B37A0
|
|
||||||
adds r0, r1, r7
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strb r0, [r2]
|
|
||||||
adds r2, r6, r5
|
|
||||||
ldr r0, _080465C4 @ =gUnk_080B3E80
|
|
||||||
adds r1, r1, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
strb r0, [r2]
|
|
||||||
subs r3, #2
|
|
||||||
subs r4, #2
|
|
||||||
subs r5, #1
|
|
||||||
cmp r5, #0
|
|
||||||
bne _08046560
|
|
||||||
mov r0, sl
|
|
||||||
ldr r2, [sp]
|
|
||||||
mov r1, r8
|
|
||||||
str r1, [sp, #4]
|
|
||||||
mov r6, sb
|
|
||||||
mov r1, ip
|
|
||||||
cmp r1, #0
|
|
||||||
bne _0804653A
|
|
||||||
add sp, #8
|
|
||||||
pop {r3, r4, r5}
|
|
||||||
mov r8, r3
|
|
||||||
mov sb, r4
|
|
||||||
mov sl, r5
|
|
||||||
pop {r4, r5, r6, r7, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_080465AC: .4byte gMapTop+0x5004
|
|
||||||
_080465B0: .4byte 0xFFFFBCB0
|
|
||||||
_080465B4: .4byte 0xFFFFECB0
|
|
||||||
_080465B8: .4byte 0x00006658
|
|
||||||
_080465BC: .4byte 0xFFFFD658
|
|
||||||
_080465C0: .4byte gUnk_080B37A0
|
|
||||||
_080465C4: .4byte gUnk_080B3E80
|
|
||||||
.syntax divided
|
|
|
@ -1,95 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
push {r4, r5, r6, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
movs r1, #2
|
|
||||||
bl UpdateAnimationVariableFrames
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl ProcessMovement0
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08038334
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x78
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ldrb r1, [r4, #0x15]
|
|
||||||
cmp r0, r1
|
|
||||||
bne _08038330
|
|
||||||
.ifdef EU
|
|
||||||
movs r0, #0x1e
|
|
||||||
.else
|
|
||||||
movs r0, #0x5a
|
|
||||||
.endif
|
|
||||||
strb r0, [r4, #0xf]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_080383AC
|
|
||||||
b _080383AA
|
|
||||||
_08038330:
|
|
||||||
strb r0, [r4, #0x15]
|
|
||||||
b _080383AA
|
|
||||||
_08038334:
|
|
||||||
ldrb r0, [r4, #0xe]
|
|
||||||
adds r0, #1
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
lsls r0, r0, #0x18
|
|
||||||
lsrs r0, r0, #0x18
|
|
||||||
movs r1, #0xa
|
|
||||||
bl __modsi3
|
|
||||||
lsls r0, r0, #0x18
|
|
||||||
lsrs r0, r0, #0x18
|
|
||||||
cmp r0, #0
|
|
||||||
bne _080383AA
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x78
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ldrb r3, [r4, #0x15]
|
|
||||||
cmp r0, r3
|
|
||||||
bne _08038398
|
|
||||||
bl Random
|
|
||||||
movs r1, #2
|
|
||||||
ands r1, r0
|
|
||||||
subs r1, #1
|
|
||||||
lsls r1, r1, #0x1b
|
|
||||||
lsrs r1, r1, #0x18
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x79
|
|
||||||
lsls r5, r1, #0x18
|
|
||||||
lsrs r3, r5, #0x18
|
|
||||||
adds r2, r0, #0
|
|
||||||
movs r6, #0x7a
|
|
||||||
adds r6, r6, r4
|
|
||||||
mov ip, r6
|
|
||||||
ldrb r0, [r2]
|
|
||||||
cmp r3, r0
|
|
||||||
bne _08038388
|
|
||||||
ldrb r6, [r6]
|
|
||||||
cmp r3, r6
|
|
||||||
bne _08038388
|
|
||||||
rsbs r0, r5, #0
|
|
||||||
lsrs r1, r0, #0x18
|
|
||||||
_08038388:
|
|
||||||
ldrb r0, [r2]
|
|
||||||
mov r3, ip
|
|
||||||
strb r0, [r3]
|
|
||||||
strb r1, [r2]
|
|
||||||
ldrb r0, [r4, #0x15]
|
|
||||||
adds r0, r0, r1
|
|
||||||
movs r1, #0x18
|
|
||||||
ands r0, r1
|
|
||||||
_08038398:
|
|
||||||
strb r0, [r4, #0x15]
|
|
||||||
ldrb r0, [r4, #0x15]
|
|
||||||
lsrs r0, r0, #3
|
|
||||||
strb r0, [r4, #0x14]
|
|
||||||
ldrb r1, [r4, #0x14]
|
|
||||||
adds r1, #4
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
_080383AA:
|
|
||||||
pop {r4, r5, r6, pc}
|
|
||||||
|
|
||||||
.syntax divided
|
|
|
@ -240,30 +240,30 @@ void sub_080464C0(GyorgFemaleEntity* this) {
|
||||||
gUpdateVisibleTiles = 1;
|
gUpdateVisibleTiles = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
NONMATCH("asm/non_matching/gyorg_female/sub_08046518.inc", void sub_08046518(void)) {
|
#define sub_08046518_offset 0x658
|
||||||
u32 r5;
|
|
||||||
u16* stack1;
|
void sub_08046518(void) {
|
||||||
u8* stack2;
|
u16* ptr = gMapTop.metatileTypes;
|
||||||
u8* r6;
|
u16* sl = &gMapTop.mapData[sub_08046518_offset];
|
||||||
|
u16* stack1 = &gMapTop.mapDataClone[sub_08046518_offset];
|
||||||
|
u8* stack2 = &gMapTop.unkData3[sub_08046518_offset];
|
||||||
|
u8* r6 = &gMapTop.collisionData[sub_08046518_offset];
|
||||||
u32 i;
|
u32 i;
|
||||||
u16* sl;
|
for (i = 0x10; i != 0; i--) {
|
||||||
sl = &gMapTop.metatileTypes[0xFFFFBCB0];
|
u32 j;
|
||||||
stack1 = &gMapTop.metatileTypes[0xFFFFECB0];
|
for (j = 0x10; j != 0; j--) {
|
||||||
stack2 = (u8*)&gMapTop.metatileTypes[0x00006658];
|
u16 new_var;
|
||||||
r6 = (u8*)&gMapTop.metatileTypes[0xFFFFD658];
|
stack1[j] = sl[j];
|
||||||
for (i = 0; i < 0x10; i++) {
|
new_var = ptr[sl[j]];
|
||||||
|
stack2[j] = gUnk_080B37A0[new_var];
|
||||||
|
r6[j] = gUnk_080B3E80[new_var];
|
||||||
|
}
|
||||||
sl += 0x40;
|
sl += 0x40;
|
||||||
stack1 += 0x40;
|
stack1 += 0x40;
|
||||||
for (r5 = 0; r5 < 0x10; r5++) {
|
stack2 += 0x40;
|
||||||
stack1[r5] = sl[r5];
|
r6 += 0x40;
|
||||||
stack2[r5] = gUnk_080B37A0[gMapTop.metatileTypes[sl[r5]]];
|
|
||||||
r6[r5] = gUnk_080B3E80[gMapTop.metatileTypes[sl[r5]]];
|
|
||||||
}
|
|
||||||
stack2 = stack2 + 0x40;
|
|
||||||
r6 = r6 + 0x40;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END_NONMATCH
|
|
||||||
|
|
||||||
void sub_080465C8(void) {
|
void sub_080465C8(void) {
|
||||||
s32 x, y;
|
s32 x, y;
|
||||||
|
|
|
@ -96,7 +96,49 @@ void sub_080382EC(Entity* this) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ASM_FUNC("asm/non_matching/ropeGolden/sub_08038304.inc", void sub_08038304(Entity* this))
|
void sub_08038304(Entity* this) {
|
||||||
|
u32 cVar2;
|
||||||
|
s32 tmp;
|
||||||
|
u32 tmp3;
|
||||||
|
u32 h;
|
||||||
|
|
||||||
|
UpdateAnimationVariableFrames(this, 2);
|
||||||
|
if (!ProcessMovement0(this)) {
|
||||||
|
if (this->field_0x78.HALF.LO == this->direction) {
|
||||||
|
#ifdef EU
|
||||||
|
this->subtimer = 30;
|
||||||
|
#else
|
||||||
|
this->subtimer = 90;
|
||||||
|
#endif
|
||||||
|
sub_080383AC(this);
|
||||||
|
} else {
|
||||||
|
this->direction = this->field_0x78.HALF.LO;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tmp = 10;
|
||||||
|
if ((u8)((++this->timer) % tmp) == 0) {
|
||||||
|
this->timer = 0;
|
||||||
|
if (this->field_0x78.HALF.LO == this->direction) {
|
||||||
|
cVar2 = ((Random() & 2) - 1) << 27;
|
||||||
|
cVar2 = cVar2 >> 24;
|
||||||
|
h = this->field_0x78.HALF.HI;
|
||||||
|
tmp3 = (u8)cVar2 << 24;
|
||||||
|
if (tmp3 >> 24 == h) {
|
||||||
|
if (h == this->field_0x7a.HALF.LO) {
|
||||||
|
cVar2 = -tmp3 >> 24;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this->field_0x7a.HALF.LO = this->field_0x78.HALF.HI;
|
||||||
|
this->field_0x78.HALF.HI = cVar2;
|
||||||
|
this->direction = (this->direction + cVar2) & 0x18;
|
||||||
|
} else {
|
||||||
|
this->direction = this->field_0x78.HALF.LO;
|
||||||
|
}
|
||||||
|
this->animationState = this->direction >> 3;
|
||||||
|
InitializeAnimation(this, this->animationState + 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void sub_080383AC(Entity* this) {
|
void sub_080383AC(Entity* this) {
|
||||||
u32 v;
|
u32 v;
|
||||||
|
|
Loading…
Reference in New Issue