mirror of https://github.com/pmret/papermario.git
UnkPositionFunc
This commit is contained in:
parent
51b1c9acfb
commit
cff33e37f4
|
|
@ -1,30 +0,0 @@
|
|||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802401B0_8C8140
|
||||
/* 8C8140 802401B0 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 8C8144 802401B4 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 8C8148 802401B8 0080882D */ daddu $s1, $a0, $zero
|
||||
/* 8C814C 802401BC 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 8C8150 802401C0 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* 8C8154 802401C4 0C00EABB */ jal get_npc_unsafe
|
||||
/* 8C8158 802401C8 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 8C815C 802401CC 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 8C8160 802401D0 C60C0038 */ lwc1 $f12, 0x38($s0)
|
||||
/* 8C8164 802401D4 0C038022 */ jal func_800E0088
|
||||
/* 8C8168 802401D8 C60E0040 */ lwc1 $f14, 0x40($s0)
|
||||
/* 8C816C 802401DC C6020018 */ lwc1 $f2, 0x18($s0)
|
||||
/* 8C8170 802401E0 3C013F4C */ lui $at, 0x3f4c
|
||||
/* 8C8174 802401E4 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* 8C8178 802401E8 44812000 */ mtc1 $at, $f4
|
||||
/* 8C817C 802401EC 46020003 */ div.s $f0, $f0, $f2
|
||||
/* 8C8180 802401F0 46040002 */ mul.s $f0, $f0, $f4
|
||||
/* 8C8184 802401F4 00000000 */ nop
|
||||
/* 8C8188 802401F8 4600018D */ trunc.w.s $f6, $f0
|
||||
/* 8C818C 802401FC E6260088 */ swc1 $f6, 0x88($s1)
|
||||
/* 8C8190 80240200 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* 8C8194 80240204 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 8C8198 80240208 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 8C819C 8024020C 24020002 */ addiu $v0, $zero, 2
|
||||
/* 8C81A0 80240210 03E00008 */ jr $ra
|
||||
/* 8C81A4 80240214 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80240218_8C81A8
|
||||
/* 8C81A8 80240218 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 8C81AC 8024021C AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 8C81B0 80240220 0080882D */ daddu $s1, $a0, $zero
|
||||
/* 8C81B4 80240224 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* 8C81B8 80240228 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 8C81BC 8024022C F7B80030 */ sdc1 $f24, 0x30($sp)
|
||||
/* 8C81C0 80240230 F7B60028 */ sdc1 $f22, 0x28($sp)
|
||||
/* 8C81C4 80240234 F7B40020 */ sdc1 $f20, 0x20($sp)
|
||||
/* 8C81C8 80240238 8E30000C */ lw $s0, 0xc($s1)
|
||||
/* 8C81CC 8024023C 8E050000 */ lw $a1, ($s0)
|
||||
/* 8C81D0 80240240 0C0B1EAF */ jal get_variable
|
||||
/* 8C81D4 80240244 26100004 */ addiu $s0, $s0, 4
|
||||
/* 8C81D8 80240248 8E050000 */ lw $a1, ($s0)
|
||||
/* 8C81DC 8024024C 26100004 */ addiu $s0, $s0, 4
|
||||
/* 8C81E0 80240250 4482C000 */ mtc1 $v0, $f24
|
||||
/* 8C81E4 80240254 00000000 */ nop
|
||||
/* 8C81E8 80240258 4680C620 */ cvt.s.w $f24, $f24
|
||||
/* 8C81EC 8024025C 0C0B1EAF */ jal get_variable
|
||||
/* 8C81F0 80240260 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 8C81F4 80240264 8E050000 */ lw $a1, ($s0)
|
||||
/* 8C81F8 80240268 26100004 */ addiu $s0, $s0, 4
|
||||
/* 8C81FC 8024026C 4482B000 */ mtc1 $v0, $f22
|
||||
/* 8C8200 80240270 00000000 */ nop
|
||||
/* 8C8204 80240274 4680B5A0 */ cvt.s.w $f22, $f22
|
||||
/* 8C8208 80240278 0C0B1EAF */ jal get_variable
|
||||
/* 8C820C 8024027C 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 8C8210 80240280 8E050000 */ lw $a1, ($s0)
|
||||
/* 8C8214 80240284 4482A000 */ mtc1 $v0, $f20
|
||||
/* 8C8218 80240288 00000000 */ nop
|
||||
/* 8C821C 8024028C 4680A520 */ cvt.s.w $f20, $f20
|
||||
/* 8C8220 80240290 0C0B1EAF */ jal get_variable
|
||||
/* 8C8224 80240294 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 8C8228 80240298 44820000 */ mtc1 $v0, $f0
|
||||
/* 8C822C 8024029C 00000000 */ nop
|
||||
/* 8C8230 802402A0 46800020 */ cvt.s.w $f0, $f0
|
||||
/* 8C8234 802402A4 46160001 */ sub.s $f0, $f0, $f22
|
||||
/* 8C8238 802402A8 4618A501 */ sub.s $f20, $f20, $f24
|
||||
/* 8C823C 802402AC 46140003 */ div.s $f0, $f0, $f20
|
||||
/* 8C8240 802402B0 46180602 */ mul.s $f24, $f0, $f24
|
||||
/* 8C8244 802402B4 00000000 */ nop
|
||||
/* 8C8248 802402B8 3C028011 */ lui $v0, %hi(gPlayerStatus)
|
||||
/* 8C824C 802402BC 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus)
|
||||
/* 8C8250 802402C0 C4420028 */ lwc1 $f2, 0x28($v0)
|
||||
/* 8C8254 802402C4 46020002 */ mul.s $f0, $f0, $f2
|
||||
/* 8C8258 802402C8 00000000 */ nop
|
||||
/* 8C825C 802402CC 4618B581 */ sub.s $f22, $f22, $f24
|
||||
/* 8C8260 802402D0 46160000 */ add.s $f0, $f0, $f22
|
||||
/* 8C8264 802402D4 C4420030 */ lwc1 $f2, 0x30($v0)
|
||||
/* 8C8268 802402D8 4600103C */ c.lt.s $f2, $f0
|
||||
/* 8C826C 802402DC 00000000 */ nop
|
||||
/* 8C8270 802402E0 45000003 */ bc1f .L802402F0
|
||||
/* 8C8274 802402E4 24020001 */ addiu $v0, $zero, 1
|
||||
/* 8C8278 802402E8 080900BD */ j .L802402F4
|
||||
/* 8C827C 802402EC AE200084 */ sw $zero, 0x84($s1)
|
||||
.L802402F0:
|
||||
/* 8C8280 802402F0 AE220084 */ sw $v0, 0x84($s1)
|
||||
.L802402F4:
|
||||
/* 8C8284 802402F4 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* 8C8288 802402F8 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 8C828C 802402FC 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 8C8290 80240300 D7B80030 */ ldc1 $f24, 0x30($sp)
|
||||
/* 8C8294 80240304 D7B60028 */ ldc1 $f22, 0x28($sp)
|
||||
/* 8C8298 80240308 D7B40020 */ ldc1 $f20, 0x20($sp)
|
||||
/* 8C829C 8024030C 24020002 */ addiu $v0, $zero, 2
|
||||
/* 8C82A0 80240310 03E00008 */ jr $ra
|
||||
/* 8C82A4 80240314 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
/* 8C82A8 80240318 00000000 */ nop
|
||||
/* 8C82AC 8024031C 00000000 */ nop
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802446E0_804F60
|
||||
/* 804F60 802446E0 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 804F64 802446E4 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 804F68 802446E8 0080882D */ daddu $s1, $a0, $zero
|
||||
/* 804F6C 802446EC AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* 804F70 802446F0 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 804F74 802446F4 F7B80030 */ sdc1 $f24, 0x30($sp)
|
||||
/* 804F78 802446F8 F7B60028 */ sdc1 $f22, 0x28($sp)
|
||||
/* 804F7C 802446FC F7B40020 */ sdc1 $f20, 0x20($sp)
|
||||
/* 804F80 80244700 8E30000C */ lw $s0, 0xc($s1)
|
||||
/* 804F84 80244704 8E050000 */ lw $a1, ($s0)
|
||||
/* 804F88 80244708 0C0B1EAF */ jal get_variable
|
||||
/* 804F8C 8024470C 26100004 */ addiu $s0, $s0, 4
|
||||
/* 804F90 80244710 8E050000 */ lw $a1, ($s0)
|
||||
/* 804F94 80244714 26100004 */ addiu $s0, $s0, 4
|
||||
/* 804F98 80244718 4482C000 */ mtc1 $v0, $f24
|
||||
/* 804F9C 8024471C 00000000 */ nop
|
||||
/* 804FA0 80244720 4680C620 */ cvt.s.w $f24, $f24
|
||||
/* 804FA4 80244724 0C0B1EAF */ jal get_variable
|
||||
/* 804FA8 80244728 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 804FAC 8024472C 8E050000 */ lw $a1, ($s0)
|
||||
/* 804FB0 80244730 26100004 */ addiu $s0, $s0, 4
|
||||
/* 804FB4 80244734 4482B000 */ mtc1 $v0, $f22
|
||||
/* 804FB8 80244738 00000000 */ nop
|
||||
/* 804FBC 8024473C 4680B5A0 */ cvt.s.w $f22, $f22
|
||||
/* 804FC0 80244740 0C0B1EAF */ jal get_variable
|
||||
/* 804FC4 80244744 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 804FC8 80244748 8E050000 */ lw $a1, ($s0)
|
||||
/* 804FCC 8024474C 4482A000 */ mtc1 $v0, $f20
|
||||
/* 804FD0 80244750 00000000 */ nop
|
||||
/* 804FD4 80244754 4680A520 */ cvt.s.w $f20, $f20
|
||||
/* 804FD8 80244758 0C0B1EAF */ jal get_variable
|
||||
/* 804FDC 8024475C 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 804FE0 80244760 44820000 */ mtc1 $v0, $f0
|
||||
/* 804FE4 80244764 00000000 */ nop
|
||||
/* 804FE8 80244768 46800020 */ cvt.s.w $f0, $f0
|
||||
/* 804FEC 8024476C 46160001 */ sub.s $f0, $f0, $f22
|
||||
/* 804FF0 80244770 4618A501 */ sub.s $f20, $f20, $f24
|
||||
/* 804FF4 80244774 46140003 */ div.s $f0, $f0, $f20
|
||||
/* 804FF8 80244778 46180602 */ mul.s $f24, $f0, $f24
|
||||
/* 804FFC 8024477C 00000000 */ nop
|
||||
/* 805000 80244780 3C028011 */ lui $v0, %hi(gPlayerStatus)
|
||||
/* 805004 80244784 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus)
|
||||
/* 805008 80244788 C4420028 */ lwc1 $f2, 0x28($v0)
|
||||
/* 80500C 8024478C 46020002 */ mul.s $f0, $f0, $f2
|
||||
/* 805010 80244790 00000000 */ nop
|
||||
/* 805014 80244794 4618B581 */ sub.s $f22, $f22, $f24
|
||||
/* 805018 80244798 46160000 */ add.s $f0, $f0, $f22
|
||||
/* 80501C 8024479C C4420030 */ lwc1 $f2, 0x30($v0)
|
||||
/* 805020 802447A0 4600103C */ c.lt.s $f2, $f0
|
||||
/* 805024 802447A4 00000000 */ nop
|
||||
/* 805028 802447A8 45000003 */ bc1f .L802447B8
|
||||
/* 80502C 802447AC 24020001 */ addiu $v0, $zero, 1
|
||||
/* 805030 802447B0 080911EF */ j .L802447BC
|
||||
/* 805034 802447B4 AE200084 */ sw $zero, 0x84($s1)
|
||||
.L802447B8:
|
||||
/* 805038 802447B8 AE220084 */ sw $v0, 0x84($s1)
|
||||
.L802447BC:
|
||||
/* 80503C 802447BC 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* 805040 802447C0 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 805044 802447C4 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 805048 802447C8 D7B80030 */ ldc1 $f24, 0x30($sp)
|
||||
/* 80504C 802447CC D7B60028 */ ldc1 $f22, 0x28($sp)
|
||||
/* 805050 802447D0 D7B40020 */ ldc1 $f20, 0x20($sp)
|
||||
/* 805054 802447D4 24020002 */ addiu $v0, $zero, 2
|
||||
/* 805058 802447D8 03E00008 */ jr $ra
|
||||
/* 80505C 802447DC 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
|
|
@ -70,6 +70,7 @@ void set_curtain_fade(f32 scale);
|
|||
|
||||
void fx_walk_normal(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s32 arg5);
|
||||
|
||||
f32 func_800E0088(f32, f32);
|
||||
s32 func_800EB168(s32);
|
||||
|
||||
// Partner
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFF78);
|
|||
|
||||
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFFCC);
|
||||
|
||||
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0088);
|
||||
INCLUDE_ASM(f32, "code_759b0_len_61b0", func_800E0088, f32 arg0, f32 arg1);
|
||||
|
||||
void enable_player_shadow(void) {
|
||||
get_shadow_by_index(D_8010F094)->flags &= ~1;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,11 @@ INCLUDE_ASM(s32, "world/area_kmr/kmr_03/8C7F90", func_80240000_8C7F90);
|
|||
|
||||
#include "world/common/CheckPartnerFlags1000.inc.c"
|
||||
|
||||
INCLUDE_ASM(s32, "world/area_kmr/kmr_03/8C7F90", func_802401B0_8C8140);
|
||||
ApiStatus func_802401B0_8C8140(ScriptInstance* script, s32 isInitialCall) {
|
||||
Npc* npc = get_npc_unsafe(0);
|
||||
|
||||
INCLUDE_ASM(s32, "world/area_kmr/kmr_03/8C7F90", func_80240218_8C81A8);
|
||||
script->varTable[1] = (func_800E0088(npc->pos.x, npc->pos.z) / npc->moveSpeed) * 0.8f;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
#include "world/common/UnkPositionFunc.inc.c"
|
||||
|
|
|
|||
|
|
@ -78,25 +78,7 @@ INCLUDE_ASM(s32, "world/area_mac/mac_00/7EB340", func_80241E80_7ECB90);
|
|||
|
||||
INCLUDE_ASM(s32, "world/area_mac/mac_00/7EB340", func_80241FF0_7ECD00);
|
||||
|
||||
ApiStatus func_80242078_7ECD88(ScriptInstance* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
PlayerStatus* playerStatus = PLAYER_STATUS;
|
||||
f32 var0 = get_variable(script, *args++);
|
||||
f32 var1 = get_variable(script, *args++);
|
||||
f32 var2 = get_variable(script, *args++);
|
||||
f32 var3 = get_variable(script, *args++);
|
||||
f32 temp;
|
||||
|
||||
temp = (var3 - var1) / (var2 - var0);
|
||||
|
||||
if (playerStatus->position.z < ((temp * playerStatus->position.x) + (var1 - (temp * var0)))) {
|
||||
script->varTable[0] = 0;
|
||||
} else {
|
||||
script->varTable[0] = 1;
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
#include "world/common/UnkPositionFunc.inc.c"
|
||||
|
||||
INCLUDE_ASM(s32, "world/area_mac/mac_00/7EB340", func_80242178_7ECE88);
|
||||
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ INCLUDE_ASM(s32, "world/area_mac/mac_01/8017D0", func_802443E0_804C60);
|
|||
|
||||
INCLUDE_ASM(s32, "world/area_mac/mac_01/8017D0", func_802446AC_804F2C);
|
||||
|
||||
INCLUDE_ASM(s32, "world/area_mac/mac_01/8017D0", func_802446E0_804F60);
|
||||
#include "world/common/UnkPositionFunc.inc.c"
|
||||
|
||||
INCLUDE_ASM(s32, "world/area_mac/mac_01/8017D0", func_802447E0_805060);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
#include "common.h"
|
||||
|
||||
static ApiStatus UnkPositionFunc(ScriptInstance* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
PlayerStatus* playerStatus = PLAYER_STATUS;
|
||||
f32 var0 = get_variable(script, *args++);
|
||||
f32 var1 = get_variable(script, *args++);
|
||||
f32 var2 = get_variable(script, *args++);
|
||||
f32 var3 = get_variable(script, *args++);
|
||||
f32 temp;
|
||||
|
||||
temp = (var3 - var1) / (var2 - var0);
|
||||
|
||||
if (playerStatus->position.z < ((temp * playerStatus->position.x) + (var1 - (temp * var0)))) {
|
||||
script->varTable[0] = 0;
|
||||
} else {
|
||||
script->varTable[0] = 1;
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
Loading…
Reference in New Issue