From adffd0e7ff42769675ee1545ec166d9922ac2d20 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Wed, 12 Jan 2022 15:10:53 +0100 Subject: [PATCH] Match sub_080626E0 --- asm/non_matching/kid/sub_080626E0.inc | 89 --------------------------- src/npc/kid.c | 22 +++---- 2 files changed, 8 insertions(+), 103 deletions(-) delete mode 100644 asm/non_matching/kid/sub_080626E0.inc diff --git a/asm/non_matching/kid/sub_080626E0.inc b/asm/non_matching/kid/sub_080626E0.inc deleted file mode 100644 index c0a6e84153..0000000000 --- a/asm/non_matching/kid/sub_080626E0.inc +++ /dev/null @@ -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 diff --git a/src/npc/kid.c b/src/npc/kid.c index 2bfedc0e90..7e08592c2b 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -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);