started EquipHammer.cpp

This commit is contained in:
Yanis002
2025-02-07 22:38:35 +01:00
parent 9a1c258bf5
commit 68c6291568
10 changed files with 149 additions and 33 deletions
+2 -2
View File
@@ -680,7 +680,7 @@ _ZN10MapManager18func_ov00_0208527cEv kind:function(arm,size=0x180) addr:0x20852
_ZN10MapManager18func_ov00_020853fcEv kind:function(arm,size=0x198) addr:0x20853fc
_ZN10MapManager18func_ov00_02085594Ev kind:function(arm,size=0x2a8) addr:0x2085594
_ZN10MapManager18func_ov00_0208583cEiP5Vec3pi kind:function(arm,size=0x74) addr:0x208583c
_ZN10MapManager18func_ov00_020858b0Ev kind:function(arm,size=0x184) addr:0x20858b0
_ZN10MapManager18func_ov00_020858b0EPS_P5Vec3pi kind:function(arm,size=0x184) addr:0x20858b0
_ZN10MapManager18func_ov00_02085a34Eii kind:function(arm,size=0x22c) addr:0x2085a34
_ZN10MapManager18func_ov00_02085c60Eiiii kind:function(arm,size=0x3e4) addr:0x2085c60
_ZN10MapManager18func_ov00_02086044Eiii kind:function(arm,size=0x240) addr:0x2086044
@@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add
_ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a8844
_ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a8954
_ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8994
_ZN13LinkStateBase18func_ov00_020a89bcEii kind:function(arm,size=0x4c) addr:0x20a89bc
_ZN13LinkStateBase18func_ov00_020a89bcEPii kind:function(arm,size=0x4c) addr:0x20a89bc
_ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a8a08
_ZN13LinkStateBase18func_ov00_020a8a4cEii kind:function(arm,size=0x44) addr:0x20a8a4c
_ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a90
@@ -4,3 +4,9 @@
.data start:0x0219b140 end:0x0219b1c0 kind:data align:32
.bss start:0x0219b1c0 end:0x0219b1c0 kind:bss align:32
src/59_Hammer/Player/EquipHammer.cpp:
.text start:0x02198d00 end:0x0219933c
src/59_Hammer/Actor/Navi/ActorNaviBase.cpp:
.text start:0x0219933c end:0x0219b110
+2 -2
View File
@@ -680,7 +680,7 @@ _ZN10MapManager18func_ov00_0208527cEv kind:function(arm,size=0x180) addr:0x20852
_ZN10MapManager18func_ov00_020853fcEv kind:function(arm,size=0x198) addr:0x208539c
_ZN10MapManager18func_ov00_02085594Ev kind:function(arm,size=0x2a8) addr:0x2085534
_ZN10MapManager18func_ov00_0208583cEiP5Vec3pi kind:function(arm,size=0x74) addr:0x20857dc
_ZN10MapManager18func_ov00_020858b0Ev kind:function(arm,size=0x184) addr:0x2085850
_ZN10MapManager18func_ov00_020858b0EPS_P5Vec3pi kind:function(arm,size=0x184) addr:0x2085850
_ZN10MapManager18func_ov00_02085a34Eii kind:function(arm,size=0x22c) addr:0x20859d4
_ZN10MapManager18func_ov00_02085c60Eiiii kind:function(arm,size=0x3e4) addr:0x2085c00
_ZN10MapManager18func_ov00_02086044Eiii kind:function(arm,size=0x240) addr:0x2085fe4
@@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add
_ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a87e4
_ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a88f4
_ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8934
_ZN13LinkStateBase18func_ov00_020a89bcEii kind:function(arm,size=0x4c) addr:0x20a895c
_ZN13LinkStateBase18func_ov00_020a89bcEPii kind:function(arm,size=0x4c) addr:0x20a895c
_ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a89a8
_ZN13LinkStateBase18func_ov00_020a8a4cEii kind:function(arm,size=0x44) addr:0x20a89ec
_ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a30
+1 -1
View File
@@ -237,7 +237,7 @@ public:
static unk8 func_ov00_020853fc();
static unk8 func_ov00_02085594();
static void func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3);
static unk8 func_ov00_020858b0();
static unk8 func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3);
s32 func_ov00_02085a34(unk32 param_2, unk32 param_3);
unk8 func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
unk8 func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4);
+4 -4
View File
@@ -11,12 +11,12 @@ private:
/* 00 (base) */
/* 09 */ unk8 mUnk_09[3];
/* 0c */ Vec3p mUnk_0c;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk8 mUnk_1c;
/* 1d */ unk8 mUnk_1d;
/* 18 */ s32 mUnk_18;
/* 1c */ u8 mUnk_1c;
/* 1d */ u8 mUnk_1d;
/* 1e */ unk8 mUnk_1e[2];
/* 20 */ unk32 mUnk_20;
/* 24 */ void *mUnk_24;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2c */
+1 -1
View File
@@ -88,7 +88,7 @@ public:
void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3);
void func_ov00_020a8954(bool param1, unk32 *param2);
void func_ov00_020a8994();
void func_ov00_020a89bc(unk32 param1, unk32 param2);
void func_ov00_020a89bc(unk32* param1, unk32 param2);
void func_ov00_020a8a08(unk32 param1);
void func_ov00_020a8a4c(unk32 param1, unk32 param2);
void func_ov00_020a8a90(unk32 param1);
+1 -3
View File
@@ -24,9 +24,7 @@ public:
/* 2e */ unk8 mUnk_2e[2];
/* 30 */ void *mUnk_30;
/* 34 */ unk32 mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ void *mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 38 */ Vec3p mUnk_38;
/* 44 */ unk32 mUnk_44;
/* 48 */ void *mUnk_48;
/* 4c */ unk32 mUnk_4c;
+1 -1
View File
@@ -192,7 +192,7 @@ unk8 MapManager::func_ov00_0208527c() {}
unk8 MapManager::func_ov00_020853fc() {}
unk8 MapManager::func_ov00_02085594() {}
void MapManager::func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3) {}
unk8 MapManager::func_ov00_020858b0() {}
unk8 MapManager::func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3) {}
s32 MapManager::func_ov00_02085a34(unk32 param_2, unk32 param_3) {}
unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5) {}
unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) {}
+1 -1
View File
@@ -44,7 +44,7 @@ bool LinkStateBase::func_ov00_020a8774(Vec3p *param1, s32 angle) {}
void LinkStateBase::func_ov00_020a8844(Vec3p *param1, bool param2, bool param3) {}
void LinkStateBase::func_ov00_020a8954(bool param1, unk32 *param2) {}
void LinkStateBase::func_ov00_020a8994() {}
void LinkStateBase::func_ov00_020a89bc(unk32 param1, unk32 param2) {}
void LinkStateBase::func_ov00_020a89bc(unk32* param1, unk32 param2) {}
void LinkStateBase::func_ov00_020a8a08(unk32 param1) {}
void LinkStateBase::func_ov00_020a8a4c(unk32 param1, unk32 param2) {}
void LinkStateBase::func_ov00_020a8a90(unk32 param1) {}
+130 -18
View File
@@ -1,21 +1,133 @@
#include "Player/EquipHammer.hpp"
#include "Player/LinkStateItem.hpp"
#include "Map/MapManager.hpp"
#include "Item/ItemManager.hpp"
bool EquipHammer::IsUsable(unk32 param1) const {}
LinkStateItem *GetLinkStateItem() {}
void EquipHammer::vfunc_18() {}
void EquipHammer::vfunc_1c() {}
void EquipHammer::vfunc_30() {}
void EquipHammer::func_ov059_02198e90() {}
bool EquipHammer::func_ov059_02198ebc() {}
bool EquipHammer::func_ov059_02198ed4() {}
void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) {}
void EquipHammer::func_ov059_02198fa8(unk32 param1) {}
void EquipHammer::vfunc_38(unk32 param1) {}
u32 EquipHammer::vfunc_2c() {}
bool EquipHammer::func_ov059_02198fe0() {}
void LinkStateItem::func_ov059_02198ffc() {}
void LinkStateItem::func_ov059_0219907c() {}
void LinkStateItem::func_ov059_021990a4() {}
EquipHammer *GetEquipHammer() {}
void LinkStateItem::StopUsingHammer() {}
extern "C" void ApproachAngle_thunk(s16* src, s16* dst, u32 param3);
extern "C" void func_ov000_020b853c(void);
extern unk32 data_ov059_0219b180;
ARM bool EquipHammer::IsUsable(unk32 param1) const {}
ARM LinkStateItem *GetLinkStateItem() {
return (LinkStateItem*)GetLinkState(1);
}
ARM void EquipHammer::vfunc_18() {
this->mUnk_1c = 0;
this->mUnk_1d = 0;
this->mUnk_18 = 0;
this->mUnk_28 = 0x1000;
}
ARM void EquipHammer::vfunc_1c() {
this->mUnk_1c = 0;
this->mUnk_1d = 0;
this->mUnk_18 = 0;
}
ARM void EquipHammer::vfunc_30() {
if (this->mUnk_24 > 0) {
this->mUnk_24--;
if (this->mUnk_24 <= 1) {
this->mUnk_18 = 0;
}
}
}
ARM void EquipHammer::func_ov059_02198e90() {
if (this->mUnk_24 <= 0 && this->mUnk_1c == 0) {
this->mUnk_1c = 1;
this->mUnk_20 = 0x28;
}
}
ARM bool EquipHammer::func_ov059_02198ebc() {
if (this->mUnk_24 <= 0) {
this->mUnk_1d = 1;
}
return true;
}
ARM bool EquipHammer::func_ov059_02198ed4() {
if (this->mUnk_20 > 0) {
this->mUnk_18 = 0x10000;
this->mUnk_20--;
return this->mUnk_20 == 0;
}
this->mUnk_18 = 0x20000;
return false;
}
ARM void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) {
Vec3p local_18;
this->mUnk_0c = *vec;
if (this->mUnk_1d != 0) {
this->mUnk_1d = 0;
if (param3 == 0) {
local_18 = this->mUnk_0c;
MapManager::func_ov00_020858b0(gMapManager, &local_18, this->mUnk_20 == 0x0);
}
}
this->mUnk_1c = 0;
this->mUnk_24 = 4;
this->mUnk_28 = param2;
}
ARM void EquipHammer::func_ov059_02198fa8(unk32 param1) {
this->mUnk_1d = 0;
this->mUnk_1c = 0;
this->mUnk_18 = 0;
this->mUnk_24 = 4;
this->mUnk_28 = param1;
}
ARM void EquipHammer::vfunc_38(unk32 param1) {
}
ARM u32 EquipHammer::vfunc_2c() {
//! TODO: fake?
return (this->mUnk_18 + (s32)((u32)(this->mUnk_18 >> 0xB) >> 0x14)) >> 0xC;
}
ARM bool EquipHammer::func_ov059_02198fe0() {
return this->mUnk_18 == 0x20000 && this->mUnk_20 == 0;
}
// non-matching
ARM void LinkStateItem::func_ov059_02198ffc() {
s16 dest;
Vec3p local_20;
Vec3p local_14;
local_14 = this->mUnk_38;
local_20 = *this->GetPlayerPos();
Vec3p_Sub(&local_14, &local_20, &local_14);
dest = Atan2(local_14.x, local_14.z);
ApproachAngle_thunk(this->GetPlayerAngle(), &dest, 0x2000);
}
ARM void LinkStateItem::func_ov059_0219907c() {
this->func_ov00_020a89bc(&data_ov059_0219b180, 1);
this->mUnk_25[2] = 0;
this->mUnk_25[3] = 0;
}
ARM void LinkStateItem::func_ov059_021990a4() {}
ARM EquipHammer *GetEquipHammer() {
return (EquipHammer*)ItemManager::GetEquipItemUnchecked(ItemFlag_Hammer);
}
ARM void LinkStateItem::StopUsingHammer() {
gItemManager->GetFairy(FairyId_Courage);
func_ov000_020b853c();
}