From 087b30ab35ba833d6064221456adbbfc0ab10af9 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 2 Nov 2020 16:04:59 -0500 Subject: [PATCH] a couple more kmrs --- .../kmr_11/8DAFC0/func_80240EC0_8DAFC0.s | 28 ------------------- include/common_structs.h | 3 +- src/world/area_kmr/kmr_10/8D84D0.c | 15 ++++++++++ src/world/area_kmr/kmr_11/8DAFC0.c | 10 ++++++- 4 files changed, 26 insertions(+), 30 deletions(-) delete mode 100644 asm/nonmatchings/world/area_kmr/kmr_11/8DAFC0/func_80240EC0_8DAFC0.s diff --git a/asm/nonmatchings/world/area_kmr/kmr_11/8DAFC0/func_80240EC0_8DAFC0.s b/asm/nonmatchings/world/area_kmr/kmr_11/8DAFC0/func_80240EC0_8DAFC0.s deleted file mode 100644 index 500303fb66..0000000000 --- a/asm/nonmatchings/world/area_kmr/kmr_11/8DAFC0/func_80240EC0_8DAFC0.s +++ /dev/null @@ -1,28 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240EC0_8DAFC0 -/* 8DAFC0 80240EC0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 8DAFC4 80240EC4 AFB00010 */ sw $s0, 0x10($sp) -/* 8DAFC8 80240EC8 0080802D */ daddu $s0, $a0, $zero -/* 8DAFCC 80240ECC AFBF0014 */ sw $ra, 0x14($sp) -/* 8DAFD0 80240ED0 0C04417A */ jal get_entity_by_index -/* 8DAFD4 80240ED4 8E0400AC */ lw $a0, 0xac($s0) -/* 8DAFD8 80240ED8 0040182D */ daddu $v1, $v0, $zero -/* 8DAFDC 80240EDC C6000084 */ lwc1 $f0, 0x84($s0) -/* 8DAFE0 80240EE0 46800020 */ cvt.s.w $f0, $f0 -/* 8DAFE4 80240EE4 E4600048 */ swc1 $f0, 0x48($v1) -/* 8DAFE8 80240EE8 C6000088 */ lwc1 $f0, 0x88($s0) -/* 8DAFEC 80240EEC 46800020 */ cvt.s.w $f0, $f0 -/* 8DAFF0 80240EF0 E460004C */ swc1 $f0, 0x4c($v1) -/* 8DAFF4 80240EF4 C600008C */ lwc1 $f0, 0x8c($s0) -/* 8DAFF8 80240EF8 46800020 */ cvt.s.w $f0, $f0 -/* 8DAFFC 80240EFC E4600050 */ swc1 $f0, 0x50($v1) -/* 8DB000 80240F00 8FBF0014 */ lw $ra, 0x14($sp) -/* 8DB004 80240F04 8FB00010 */ lw $s0, 0x10($sp) -/* 8DB008 80240F08 24020002 */ addiu $v0, $zero, 2 -/* 8DB00C 80240F0C 03E00008 */ jr $ra -/* 8DB010 80240F10 27BD0018 */ addiu $sp, $sp, 0x18 -/* 8DB014 80240F14 00000000 */ nop -/* 8DB018 80240F18 00000000 */ nop -/* 8DB01C 80240F1C 00000000 */ nop diff --git a/include/common_structs.h b/include/common_structs.h index 807d692c00..be64321f80 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -271,7 +271,8 @@ typedef struct Entity { /* 0x07 */ char unk_08[4]; /* 0x0B */ u8 alpha; /* reported by rain */ /* 0x0C */ s16 aabb[3]; - /* 0x12 */ char unk_12[4]; + /* 0x12 */ char unk_12[2]; + /* 0x14 */ s16 unk_14; /* 0x16 */ s16 shadowIndex; /* 0x18 */ char unk_18[16]; /* 0x28 */ Bytecode* boundScript; diff --git a/src/world/area_kmr/kmr_10/8D84D0.c b/src/world/area_kmr/kmr_10/8D84D0.c index 7ade274f5b..2b64600489 100644 --- a/src/world/area_kmr/kmr_10/8D84D0.c +++ b/src/world/area_kmr/kmr_10/8D84D0.c @@ -8,7 +8,22 @@ INCLUDE_ASM(s32, "world/area_kmr/kmr_10/8D84D0", func_80240000_8D84D0); #include "world/common/CheckItemFlags40.inc.c" +#ifdef NON_MATCHING +ApiStatus func_802402BC_8D878C(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Entity *entity = get_entity_by_index(get_variable(script, *args++)); + s32 something = 0x1E4; + + if (entity == NULL) { + return ApiStatus_BLOCK; + } + + play_model_animation(entity->unk_14, 0x1E4); + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "world/area_kmr/kmr_10/8D84D0", func_802402BC_8D878C); +#endif ApiStatus func_80240304_8D87D4(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/src/world/area_kmr/kmr_11/8DAFC0.c b/src/world/area_kmr/kmr_11/8DAFC0.c index f2c56537a0..0ca706c981 100644 --- a/src/world/area_kmr/kmr_11/8DAFC0.c +++ b/src/world/area_kmr/kmr_11/8DAFC0.c @@ -1,3 +1,11 @@ #include "kmr_11.h" -INCLUDE_ASM(s32, "world/area_kmr/kmr_11/8DAFC0", func_80240EC0_8DAFC0); +ApiStatus func_80240EC0_8DAFC0(ScriptInstance* script, s32 isInitialCall) { + Entity* entity = get_entity_by_index(script->varTable[10]); + + entity->position.x = script->varTable[0]; + entity->position.y = script->varTable[1]; + entity->position.z = script->varTable[2]; + + return ApiStatus_DONE2; +}