mirror of https://github.com/zeldaret/tmc.git
Merge pull request #291 from nonmatch/patch-26
This commit is contained in:
commit
cb50175d59
|
|
@ -1,89 +0,0 @@
|
|||
.syntax unified
|
||||
.text
|
||||
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
ldrb r0, [r4, #0x18]
|
||||
cmp r0, #0
|
||||
bne _0806270E
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #0xa
|
||||
strb r0, [r4, #0x19]
|
||||
ldr r0, [r4, #8]
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
str r0, [r4, #8]
|
||||
ldrh r2, [r4, #4]
|
||||
ldr r1, _08062778 @ =gRoomControls
|
||||
ldrh r0, [r4, #6]
|
||||
ldrh r3, [r1, #6]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r4, #0x1e]
|
||||
ldrh r0, [r1, #8]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x22]
|
||||
_0806270E:
|
||||
ldrb r0, [r4, #0x19]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0x19]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0806274A
|
||||
movs r0, #0xa
|
||||
strb r0, [r4, #0x19]
|
||||
movs r1, #0x1e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
subs r0, r0, r1
|
||||
movs r3, #0x22
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r5, r3]
|
||||
subs r1, r1, r2
|
||||
bl sub_080045DA
|
||||
strb r0, [r5, #0x15]
|
||||
bl Random
|
||||
movs r1, #0xb
|
||||
bl __modsi3
|
||||
ldrb r1, [r5, #0x15]
|
||||
adds r1, r1, r0
|
||||
subs r1, #5
|
||||
strb r1, [r5, #0x15]
|
||||
_0806274A:
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r5, r0]
|
||||
ldrb r2, [r5, #0x15]
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F62C
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
movs r3, #0x1e
|
||||
ldrsh r0, [r4, r3]
|
||||
subs r1, r1, r0
|
||||
lsls r1, r1, #8
|
||||
ldrh r0, [r5, #0x24]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x11
|
||||
adds r1, r1, r0
|
||||
movs r2, #0x24
|
||||
ldrsh r0, [r5, r2]
|
||||
cmp r1, r0
|
||||
bhi _0806277C
|
||||
ldrh r0, [r4, #0x1e]
|
||||
strh r0, [r5, #0x2e]
|
||||
b _08062782
|
||||
.align 2, 0
|
||||
_08062778: .4byte gRoomControls
|
||||
_0806277C:
|
||||
ldr r1, _08062784 @ =gActiveScriptInfo
|
||||
movs r0, #0
|
||||
strb r0, [r1, #6]
|
||||
_08062782:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08062784: .4byte gActiveScriptInfo
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -223,11 +223,9 @@ void sub_080626C0(Entity* this, ScriptExecutionContext* context) {
|
|||
}
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/kid/sub_080626E0.inc", void sub_080626E0(Entity* this, ScriptExecutionContext* context)) {
|
||||
void sub_080626E0(Entity* this, ScriptExecutionContext* context) {
|
||||
// TODO second parameter might be anything as this function does not seem to be called?
|
||||
s16 sVar1;
|
||||
u8 bVar2;
|
||||
u8 cVar3;
|
||||
s32 uVar4;
|
||||
|
||||
if (context->unk_18 == 0) {
|
||||
|
|
@ -235,28 +233,24 @@ NONMATCH("asm/non_matching/kid/sub_080626E0.inc", void sub_080626E0(Entity* this
|
|||
context->unk_19 = 10;
|
||||
context->postScriptActions |= 2;
|
||||
sVar1 = *(s16*)&context->intVariable;
|
||||
context->x.HALF.HI = *((u16*)&context->intVariable + 2) + gRoomControls.origin_x;
|
||||
context->x.HALF.HI = gRoomControls.origin_x + *((u16*)&context->intVariable + 1);
|
||||
context->y.HALF.HI = gRoomControls.origin_y + sVar1;
|
||||
}
|
||||
bVar2 = context->unk_19 - 1;
|
||||
context->unk_19 = bVar2;
|
||||
if (bVar2 == 0) {
|
||||
if (--context->unk_19 == 0) {
|
||||
context->unk_19 = 10;
|
||||
uVar4 = sub_080045DA(context->x.HALF.HI - this->x.HALF.HI, context->y.HALF.HI - this->y.HALF.HI);
|
||||
this->direction = (u8)uVar4;
|
||||
uVar4 = Random();
|
||||
cVar3 = uVar4 % 0xb;
|
||||
this->direction = (this->direction + cVar3) - 5;
|
||||
this->direction = (this->direction + uVar4 % 0xb) - 5;
|
||||
}
|
||||
sub_0806F62C(this, (s32)this->speed, (u32)this->direction);
|
||||
if ((u32)(s32)this->speed <
|
||||
(u32)((this->x.HALF.HI - context->x.HALF.HI) * 0x100 + ((s32)((u32)(u16)this->speed << 0x10) >> 0x11))) {
|
||||
gActiveScriptInfo.commandSize = 0;
|
||||
} else {
|
||||
if ((u32)((this->x.HALF.HI - context->x.HALF.HI) * 0x100 + ((s32)((u32)(u16)this->speed << 0x10) >> 0x11)) <=
|
||||
(u32)(s32)this->speed) {
|
||||
this->x.HALF.HI = context->x.HALF.HI;
|
||||
} else {
|
||||
gActiveScriptInfo.commandSize = 0;
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_08062788(Entity* this, ScriptExecutionContext* context) {
|
||||
SetTile(0x4072, 0x60b, 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue