Merge pull request #291 from nonmatch/patch-26

This commit is contained in:
notyourav 2022-01-12 10:38:50 -08:00 committed by GitHub
commit cb50175d59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 103 deletions

View File

@ -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

View File

@ -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);