mirror of
https://github.com/zeldaret/ph
synced 2026-07-08 13:46:28 -04:00
Decomp PlayerControl 99%
This commit is contained in:
@@ -4896,16 +4896,17 @@ data_ov000_020e6088 kind:data(any) addr:0x20e6088
|
||||
data_ov000_020e6098 kind:data(any) addr:0x20e6098
|
||||
data_ov000_020e60a8 kind:data(any) addr:0x20e60a8
|
||||
_ZTV13LinkStateRoll kind:data(any) addr:0x20e60c0
|
||||
data_ov000_020e6104 kind:data(any) addr:0x20e6104
|
||||
data_ov000_020e6108 kind:data(any) addr:0x20e6108
|
||||
data_ov000_020e610c kind:data(any) addr:0x20e610c
|
||||
data_ov000_020e6110 kind:data(any) addr:0x20e6110
|
||||
data_ov000_020e6114 kind:data(any) addr:0x20e6114
|
||||
data_ov000_020e6118 kind:data(any) addr:0x20e6118
|
||||
data_ov000_020e611c kind:data(any) addr:0x20e611c
|
||||
data_ov000_020e6120 kind:data(any) addr:0x20e6120
|
||||
data_ov000_020e6124 kind:data(any) addr:0x20e6124
|
||||
@1548 kind:data(any) addr:0x20e6148
|
||||
@1505 kind:data(any) addr:0x20e6104
|
||||
@1504 kind:data(any) addr:0x20e6108
|
||||
@1503 kind:data(any) addr:0x20e610c
|
||||
@1502 kind:data(any) addr:0x20e6110
|
||||
@1501 kind:data(any) addr:0x20e6114
|
||||
@1500 kind:data(any) addr:0x20e6118
|
||||
@1499 kind:data(any) addr:0x20e611c
|
||||
@1498 kind:data(any) addr:0x20e6120
|
||||
sShipTypes kind:data(any) addr:0x20e6124 local
|
||||
data_ov000_020e6144 kind:data(any) addr:0x20e6144
|
||||
@1556 kind:data(any) addr:0x20e6148
|
||||
data_ov000_020e6158 kind:data(any) addr:0x20e6158
|
||||
data_ov000_020e6174 kind:data(any) addr:0x20e6174
|
||||
data_ov000_020e6178 kind:data(any) addr:0x20e6178
|
||||
@@ -5876,6 +5877,7 @@ data_ov000_020ee16c kind:bss addr:0x20ee16c
|
||||
data_ov000_020ee178 kind:bss addr:0x20ee178
|
||||
data_ov000_020ee184 kind:bss addr:0x20ee184
|
||||
data_ov000_020ee198 kind:bss addr:0x20ee198
|
||||
data_ov000_020ee19c kind:bss addr:0x20ee19c
|
||||
@418 kind:bss addr:0x20ee1a0 local
|
||||
_ZN9ActorNavi5gTypeE kind:bss addr:0x20ee1ac
|
||||
@419 kind:bss addr:0x20ee1c0 local
|
||||
|
||||
@@ -4896,16 +4896,17 @@ data_ov000_020e6088 kind:data(any) addr:0x20e6028
|
||||
data_ov000_020e6098 kind:data(any) addr:0x20e6038
|
||||
data_ov000_020e60a8 kind:data(any) addr:0x20e6048
|
||||
_ZTV13LinkStateRoll kind:data(any) addr:0x20e6060
|
||||
data_ov000_020e6104 kind:data(any) addr:0x20e60a4
|
||||
data_ov000_020e6108 kind:data(any) addr:0x20e60a8
|
||||
data_ov000_020e610c kind:data(any) addr:0x20e60ac
|
||||
data_ov000_020e6110 kind:data(any) addr:0x20e60b0
|
||||
data_ov000_020e6114 kind:data(any) addr:0x20e60b4
|
||||
data_ov000_020e6118 kind:data(any) addr:0x20e60b8
|
||||
data_ov000_020e611c kind:data(any) addr:0x20e60bc
|
||||
data_ov000_020e6120 kind:data(any) addr:0x20e60c0
|
||||
data_ov000_020e6124 kind:data(any) addr:0x20e60c4
|
||||
@1548 kind:data(any) addr:0x20e60e8
|
||||
@1505 kind:data(any) addr:0x20e60a4
|
||||
@1504 kind:data(any) addr:0x20e60a8
|
||||
@1503 kind:data(any) addr:0x20e60ac
|
||||
@1502 kind:data(any) addr:0x20e60b0
|
||||
@1501 kind:data(any) addr:0x20e60b4
|
||||
@1500 kind:data(any) addr:0x20e60b8
|
||||
@1499 kind:data(any) addr:0x20e60bc
|
||||
@1498 kind:data(any) addr:0x20e60c0
|
||||
sShipTypes kind:data(any) addr:0x20e60c4 local
|
||||
data_ov000_020e6144 kind:data(any) addr:0x20e6144
|
||||
@1556 kind:data(any) addr:0x20e60e8
|
||||
data_ov000_020e6158 kind:data(any) addr:0x20e60f8
|
||||
data_ov000_020e6174 kind:data(any) addr:0x20e6114
|
||||
data_ov000_020e6178 kind:data(any) addr:0x20e6118
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "Player/PlayerLinkBase.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
|
||||
static char *sShipTypes[] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
|
||||
static char *sShipTypes[] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"};
|
||||
|
||||
ARM bool PlayerControl::func_ov00_020aeeac() {
|
||||
if (((data_02056be4[data_027e077c.GetUnk0()] & 1) != 0) || ((data_02056be4[data_027e077c.GetUnk0()] & 4) != 0)) {
|
||||
@@ -569,7 +569,10 @@ ARM void PlayerControl::func_ov00_020affec(Vec3p *param1, s32 y, s32 param3, Vec
|
||||
param1->z = mTouchWorld.z;
|
||||
}
|
||||
|
||||
extern u32 data_ov000_020ee198;
|
||||
#pragma section sbss begin
|
||||
static u32 data_ov000_020ee198;
|
||||
static u32 data_ov000_020ee19c;
|
||||
#pragma section sbss end
|
||||
|
||||
ARM void PlayerControl::func_ov00_020b014c(Vec3p *param1) {
|
||||
if ((data_ov000_020ee198 & 1) == 0) {
|
||||
@@ -629,32 +632,23 @@ ARM s16 PlayerControl::GetTouchAngle() {
|
||||
static q20 data_ov000_020e6144 = FLOAT_TO_Q20(80.0);
|
||||
|
||||
ARM u32 PlayerControl::func_ov00_020b034c() {
|
||||
s16 temp_r2;
|
||||
s64 temp_ip;
|
||||
s32 temp_r2_2;
|
||||
s64 temp_r3;
|
||||
u64 temp_ret;
|
||||
s32 var_r0;
|
||||
|
||||
if ((mTouchDuration >= 0) && (this->func_ov00_020af2d4(1, 1) != 0)) {
|
||||
temp_ret = func_01ff992c(data_ov000_020e6144);
|
||||
temp_ip = mTouchDist;
|
||||
temp_r2 = mTouchDuration;
|
||||
temp_r3 = temp_ret * temp_ip + 0x80000000;
|
||||
var_r0 = (((temp_r3 >> 32) * (temp_r3 >> 32)) + 0x800) >> 12;
|
||||
if (temp_r2 < 4) {
|
||||
temp_r2_2 = (4 - temp_r2) << 0xc;
|
||||
var_r0 -= (s32) (temp_r2_2 + ((u32) (temp_r2_2 >> 1) >> 0x1e)) >> 2;
|
||||
u64 temp_r0_r1 = func_01ff992c(data_ov000_020e6144); // 0x03333333
|
||||
s32 temp_r3 = (temp_r0_r1 * mTouchDist + 0x80000000) >> 32;
|
||||
s32 temp_r1_r0 = MUL_Q20(temp_r3, temp_r3);
|
||||
if (mTouchDuration < 4) {
|
||||
s32 temp_r2_2 = (4 - mTouchDuration) << 0xc;
|
||||
temp_r1_r0 -= (s32) (temp_r2_2 + ((u32) (temp_r2_2 >> 1) >> 0x1e)) >> 2;
|
||||
}
|
||||
if (var_r0 < 0) {
|
||||
if (temp_r1_r0 < 0) {
|
||||
return 0;
|
||||
}
|
||||
if (var_r0 > FLOAT_TO_Q20(1.0)) {
|
||||
var_r0 = FLOAT_TO_Q20(1.0);
|
||||
if (temp_r1_r0 > FLOAT_TO_Q20(1.0)) {
|
||||
temp_r1_r0 = FLOAT_TO_Q20(1.0);
|
||||
}
|
||||
return var_r0;
|
||||
return temp_r1_r0;
|
||||
}
|
||||
if ((mUnk_7f != 0) && (data_027e05f8.mUnk_0 & 0xF0)) {
|
||||
if ((mUnk_7f != 0) && (data_027e05f8.mUnk_0 & 0xf0)) {
|
||||
return FLOAT_TO_Q20(1.0);
|
||||
}
|
||||
return 0;
|
||||
@@ -678,6 +672,7 @@ ARM s32 PlayerControl::func_ov00_020b0418() {
|
||||
}
|
||||
|
||||
extern "C" void func_0202d95c(Vec3p *param1, q20 param2);
|
||||
// NONMATCH: Register allocation, instruction ordering
|
||||
ARM bool PlayerControl::func_ov00_020b049c(Vec3p *param1, bool param2) {
|
||||
if (this->CheckUntouchedNow(1) && mTouchDuration >= 0 && mTouchDuration < 21) {
|
||||
this->ApplyTouchWorld(param1, FLOAT_TO_Q20(0.25));
|
||||
@@ -743,12 +738,13 @@ ARM bool PlayerControl::func_ov00_020b0778(Vec3p *param1, u32 angle, unk32 *para
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 temp_r2 = SIN((u16) angle) * 0x30;
|
||||
s32 temp_r3 = COS((u16) angle) * 0x30;
|
||||
// NONMATCH: Register allocation
|
||||
q20 temp_r2 = SIN((u16) angle) * 0x30;
|
||||
q20 temp_r3 = COS((u16) angle) * 0x30;
|
||||
s32 temp_r4;
|
||||
s32 temp_r5;
|
||||
s32 var_r6;
|
||||
s32 var_r7;
|
||||
q20 var_r6;
|
||||
q20 var_r7;
|
||||
var_r6 = (s32) (temp_r2 + ((u32) (temp_r2 >> 11) >> 20)) >> 0xC;
|
||||
var_r7 = (s32) (temp_r3 + ((u32) (temp_r3 >> 11) >> 20)) >> 0xC;
|
||||
temp_r4 = mTouchX - sp8;
|
||||
@@ -809,6 +805,7 @@ ARM bool PlayerControl::func_ov00_020b0778(Vec3p *param1, u32 angle, unk32 *para
|
||||
}
|
||||
s32 var_r2 = mTouchPrevX - sp8;
|
||||
s32 var_r1 = mTouchPrevY - sp4;
|
||||
// NONMATCH: Instruction ordering
|
||||
if (var_r6 > 0x18) {
|
||||
if (var_r2 < 0) {
|
||||
var_r2 = -var_r2;
|
||||
@@ -911,12 +908,13 @@ ARM bool PlayerControl::func_ov00_020b0b0c(s16 *pAngle, ItemFlag *pEquipId, unk3
|
||||
return false;
|
||||
}
|
||||
|
||||
// NONMATCH: Instruction ordering
|
||||
ARM bool PlayerControl::func_ov00_020b0de8(Vec3p *param1) {
|
||||
if (this->CheckTouching(1) == 0) {
|
||||
if (!this->CheckTouching(1)) {
|
||||
return false;
|
||||
}
|
||||
s32 x = (mTouchLastX - 0x80) * 0xAA;
|
||||
s32 z = ((mTouchLastY - 0x60) * 0xAA00) / 192;
|
||||
s32 z = (mTouchLastY - 96) * FLOAT_TO_Q20(10.625) / 192;
|
||||
s32 x = (mTouchLastX - 128) * (FLOAT_TO_Q20(10.625) / 256);
|
||||
param1->x = x;
|
||||
param1->y = 0;
|
||||
param1->z = z;
|
||||
|
||||
Reference in New Issue
Block a user