mirror of
https://github.com/zeldaret/ph
synced 2026-05-24 07:10:52 -04:00
Decomp ActorRupee
This commit is contained in:
@@ -2920,7 +2920,7 @@ func_ov000_020c56d8 kind:function(arm,size=0x9c) addr:0x20c56d8
|
||||
func_ov000_020c5774 kind:function(arm,size=0x88) addr:0x20c5774
|
||||
func_ov000_020c57fc kind:function(arm,size=0x128) addr:0x20c57fc
|
||||
func_ov000_020c5924 kind:function(arm,size=0x100) addr:0x20c5924
|
||||
func_ov000_020c5a24 kind:function(arm,size=0x38) addr:0x20c5a24
|
||||
_Z13GetRupeeValuej kind:function(arm,size=0x38) addr:0x20c5a24
|
||||
func_ov000_020c5a5c kind:function(arm,size=0xd8) addr:0x20c5a5c
|
||||
func_ov000_020c5b34 kind:function(arm,size=0xb8) addr:0x20c5b34
|
||||
func_ov000_020c5bec kind:function(arm,size=0x40) addr:0x20c5bec
|
||||
|
||||
@@ -3214,7 +3214,7 @@ from:0x0213ae80 kind:arm_call to:0x0202e9dc module:main
|
||||
from:0x0213ae8c kind:arm_call to:0x0213ae98 module:overlay(14)
|
||||
from:0x0213ae94 kind:load to:0x027e0fe0 module:dtcm
|
||||
from:0x0213aea0 kind:arm_call to:0x020c1554 module:overlay(0)
|
||||
from:0x0213aec8 kind:load to:0x021589e4 module:overlay(14)
|
||||
from:0x0213aec8 kind:load to:0x021589dc add:8 module:overlay(14)
|
||||
from:0x0213aee0 kind:arm_call to:0x0213b70c module:overlay(14)
|
||||
from:0x0213af70 kind:arm_call to:0x0213b204 module:overlay(14)
|
||||
from:0x0213afac kind:arm_call to:0x0213b204 module:overlay(14)
|
||||
|
||||
@@ -793,9 +793,9 @@ _ZN10ActorRupee18func_ov14_0213b204Ei kind:function(arm,size=0x50) addr:0x213b20
|
||||
_ZN10ActorRupee6UpdateEb kind:function(arm,size=0x2c8) addr:0x213b254
|
||||
_ZN10ActorRupee8vfunc_14Ej kind:function(arm,size=0x38) addr:0x213b51c
|
||||
_ZN10ActorRupee8vfunc_18Ej kind:function(arm,size=0x38) addr:0x213b554
|
||||
_ZN10ActorRupee8vfunc_20Ei kind:function(arm,size=0x68) addr:0x213b58c
|
||||
_ZN10ActorRupee8vfunc_20Eb kind:function(arm,size=0x68) addr:0x213b58c
|
||||
_ZN10ActorRupee18func_ov14_0213b5f4EjiP5Vec3pb kind:function(arm,size=0xb0) addr:0x213b5f4
|
||||
_ZN10ActorRupee18func_ov14_0213b6a4EjPv kind:function(arm,size=0x68) addr:0x213b6a4
|
||||
_ZN10ActorRupee18func_ov14_0213b6a4EjP19Actor_UnkStruct_012 kind:function(arm,size=0x68) addr:0x213b6a4
|
||||
_ZN10ActorRupee18func_ov14_0213b70cEj kind:function(arm,size=0x3c) addr:0x213b70c
|
||||
_ZN10ActorRupeeD0Ev kind:function(arm,size=0x1c) addr:0x213b748
|
||||
_ZN10ActorRupeeD2Ev kind:function(arm,size=0x14) addr:0x213b764
|
||||
@@ -1684,7 +1684,7 @@ func_ov014_0215507c kind:function(arm,size=0x40) addr:0x215507c
|
||||
func_ov014_021550bc kind:function(arm,size=0x40) addr:0x21550bc
|
||||
func_ov014_021550fc kind:function(arm,size=0x40) addr:0x21550fc
|
||||
func_ov014_0215513c kind:function(arm,size=0x40) addr:0x215513c
|
||||
func_ov014_0215517c kind:function(arm,size=0x5c) addr:0x215517c
|
||||
__sinit_ActorRupee.cpp kind:function(arm,size=0x5c) addr:0x215517c
|
||||
func_ov014_021551d8 kind:function(arm,size=0x40) addr:0x21551d8
|
||||
func_ov014_02155218 kind:function(arm,size=0x38) addr:0x2155218
|
||||
func_ov014_02155250 kind:function(arm,size=0x3c) addr:0x2155250
|
||||
@@ -1902,7 +1902,9 @@ data_ov014_021589a8 kind:data(any) addr:0x21589a8
|
||||
data_ov014_021589ac kind:data(any) addr:0x21589ac
|
||||
data_ov014_021589b0 kind:data(any) addr:0x21589b0
|
||||
data_ov014_021589b4 kind:data(any) addr:0x21589b4
|
||||
_ZTV10ActorRupee kind:data(any) addr:0x21589e4
|
||||
data_ov014_021589d4 kind:data(any) addr:0x21589d4
|
||||
data_ov014_021589d8 kind:data(any) addr:0x21589d8
|
||||
_ZTV10ActorRupee kind:data(any) addr:0x21589dc
|
||||
data_ov014_02158aa0 kind:data(any) addr:0x2158aa0
|
||||
data_ov014_02158b60 kind:data(any) addr:0x2158b60
|
||||
data_ov014_02158b64 kind:data(any) addr:0x2158b64
|
||||
|
||||
@@ -2920,7 +2920,7 @@ func_ov000_020c56d8 kind:function(arm,size=0x9c) addr:0x20c5678
|
||||
func_ov000_020c5774 kind:function(arm,size=0x88) addr:0x20c5714
|
||||
func_ov000_020c57fc kind:function(arm,size=0x128) addr:0x20c579c
|
||||
func_ov000_020c5924 kind:function(arm,size=0x100) addr:0x20c58c4
|
||||
func_ov000_020c5a24 kind:function(arm,size=0x38) addr:0x20c59c4
|
||||
_Z13GetRupeeValuej kind:function(arm,size=0x38) addr:0x20c59c4
|
||||
func_ov000_020c5a5c kind:function(arm,size=0xd8) addr:0x20c59fc
|
||||
func_ov000_020c5b34 kind:function(arm,size=0xb8) addr:0x20c5ad4
|
||||
func_ov000_020c5bec kind:function(arm,size=0x40) addr:0x20c5b8c
|
||||
|
||||
@@ -3214,7 +3214,7 @@ from:0x0213addc kind:arm_call to:0x0202e9d8 module:main
|
||||
from:0x0213ade8 kind:arm_call to:0x0213adf4 module:overlay(14)
|
||||
from:0x0213adf0 kind:load to:0x027e0fe0 module:dtcm
|
||||
from:0x0213adfc kind:arm_call to:0x020c14f4 module:overlay(0)
|
||||
from:0x0213ae24 kind:load to:0x02158944 module:overlay(14)
|
||||
from:0x0213ae24 kind:load to:0x0215893c add:8 module:overlay(14)
|
||||
from:0x0213ae3c kind:arm_call to:0x0213b668 module:overlay(14)
|
||||
from:0x0213aecc kind:arm_call to:0x0213b160 module:overlay(14)
|
||||
from:0x0213af08 kind:arm_call to:0x0213b160 module:overlay(14)
|
||||
|
||||
@@ -793,9 +793,9 @@ _ZN10ActorRupee18func_ov14_0213b204Ei kind:function(arm,size=0x50) addr:0x213b16
|
||||
_ZN10ActorRupee6UpdateEb kind:function(arm,size=0x2c8) addr:0x213b1b0
|
||||
_ZN10ActorRupee8vfunc_14Ej kind:function(arm,size=0x38) addr:0x213b478
|
||||
_ZN10ActorRupee8vfunc_18Ej kind:function(arm,size=0x38) addr:0x213b4b0
|
||||
_ZN10ActorRupee8vfunc_20Ei kind:function(arm,size=0x68) addr:0x213b4e8
|
||||
_ZN10ActorRupee8vfunc_20Eb kind:function(arm,size=0x68) addr:0x213b4e8
|
||||
_ZN10ActorRupee18func_ov14_0213b5f4EjiP5Vec3pb kind:function(arm,size=0xb0) addr:0x213b550
|
||||
_ZN10ActorRupee18func_ov14_0213b6a4EjPv kind:function(arm,size=0x68) addr:0x213b600
|
||||
_ZN10ActorRupee18func_ov14_0213b6a4EjP19Actor_UnkStruct_012 kind:function(arm,size=0x68) addr:0x213b600
|
||||
_ZN10ActorRupee18func_ov14_0213b70cEj kind:function(arm,size=0x3c) addr:0x213b668
|
||||
_ZN10ActorRupeeD0Ev kind:function(arm,size=0x1c) addr:0x213b6a4
|
||||
_ZN10ActorRupeeD2Ev kind:function(arm,size=0x14) addr:0x213b6c0
|
||||
@@ -1684,7 +1684,7 @@ func_ov014_0215507c kind:function(arm,size=0x40) addr:0x2154fd8
|
||||
func_ov014_021550bc kind:function(arm,size=0x40) addr:0x2155018
|
||||
func_ov014_021550fc kind:function(arm,size=0x40) addr:0x2155058
|
||||
func_ov014_0215513c kind:function(arm,size=0x40) addr:0x2155098
|
||||
func_ov014_0215517c kind:function(arm,size=0x5c) addr:0x21550d8
|
||||
__sinit_ActorRupee.cpp kind:function(arm,size=0x5c) addr:0x21550d8
|
||||
func_ov014_021551d8 kind:function(arm,size=0x40) addr:0x2155134
|
||||
func_ov014_02155218 kind:function(arm,size=0x38) addr:0x2155174
|
||||
func_ov014_02155250 kind:function(arm,size=0x3c) addr:0x21551ac
|
||||
@@ -1902,7 +1902,9 @@ data_ov014_021589a8 kind:data(any) addr:0x2158908
|
||||
data_ov014_021589ac kind:data(any) addr:0x215890c
|
||||
data_ov014_021589b0 kind:data(any) addr:0x2158910
|
||||
data_ov014_021589b4 kind:data(any) addr:0x2158914
|
||||
_ZTV10ActorRupee kind:data(any) addr:0x2158944
|
||||
data_ov014_021589d4 kind:data(any) addr:0x2158934
|
||||
data_ov014_021589d8 kind:data(any) addr:0x2158938
|
||||
_ZTV10ActorRupee kind:data(any) addr:0x215893c
|
||||
data_ov014_02158aa0 kind:data(any) addr:0x2158a00
|
||||
data_ov014_02158b60 kind:data(any) addr:0x2158ac0
|
||||
data_ov014_02158b64 kind:data(any) addr:0x2158ac4
|
||||
|
||||
@@ -178,7 +178,7 @@ public:
|
||||
/* 14 */ virtual void vfunc_14(u32 param1);
|
||||
/* 18 */ virtual void vfunc_18(u32 param1);
|
||||
/* 1c */ virtual void vfunc_1c(u16 *param1);
|
||||
/* 20 */ virtual void vfunc_20(s32 param1);
|
||||
/* 20 */ virtual void vfunc_20(bool param1);
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual void vfunc_28();
|
||||
/* 2c */ virtual s32 vfunc_2c();
|
||||
|
||||
@@ -34,8 +34,8 @@ public:
|
||||
|
||||
/* 00 */ virtual ~ActorRupee() override;
|
||||
/* 08 */ virtual bool vfunc_08() override;
|
||||
/* 14 */ virtual void vfunc_14(bool param1) override;
|
||||
/* 18 */ virtual void vfunc_18(bool param1) override;
|
||||
/* 14 */ virtual void vfunc_14(u32 param1) override;
|
||||
/* 18 */ virtual void vfunc_18(u32 param1) override;
|
||||
/* 20 */ virtual void vfunc_20(bool param1) override;
|
||||
/* 60 */ virtual bool vfunc_60() override;
|
||||
/* 64 */ virtual void vfunc_64() override;
|
||||
|
||||
@@ -1,74 +1,43 @@
|
||||
#include "Actor/ActorRupee.hpp"
|
||||
#include "Item/ItemManager.hpp"
|
||||
#include "Map/MapManager.hpp"
|
||||
#include "Player/PlayerLinkBase.hpp"
|
||||
#include "System/Random.hpp"
|
||||
|
||||
// char* data_ov14_021589b4 = *data_ov14_02158994;
|
||||
|
||||
extern "C" {
|
||||
void func_01ff9bc4(Vec3p *a, Vec3p *b, Vec3p *sum);
|
||||
u32 func_01fffd04(void *, u32);
|
||||
bool func_ov00_020c313c();
|
||||
void func_ov00_0207a1c8(bool *param_1, bool param_2, Vec3p *param_3);
|
||||
void func_ov00_0207a1c8(bool *param_1, unk32 param_2, Vec3p *param_3);
|
||||
void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
|
||||
void func_ov05_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7,
|
||||
char param_8, char param_9, char param_10);
|
||||
void func_ov00_020d7ad4(u32 *param1, u32 param2);
|
||||
u16 func_ov00_020c5a24(RupeeId id); // GetRupeeValue
|
||||
bool func_ov00_020bce48(PlayerLinkBase *implicit, ItemId cutsceneItemId);
|
||||
void func_ov00_0207a13c(Actor_UnkStruct_012 *implicit);
|
||||
void _ZN5ActorD2Ev();
|
||||
void _ZN9SysObjectdlEPv();
|
||||
ActorRupee *_ZN5ActorC2Ev(ActorRupee *thisx);
|
||||
void _ZN10ActorRupeeD2Ev();
|
||||
|
||||
u32 data_ov14_021589b4;
|
||||
u32 data_ov14_021589d4;
|
||||
u32 *data_ov14_021589d8;
|
||||
}
|
||||
u16 GetRupeeValue(RupeeId id);
|
||||
|
||||
/* inline */ char *data_ov14_02158994[8] = {"brg", "fnl", "pdl", "dco", "can", "hul", "bow", "anc"}; // gShipParts
|
||||
extern "C" void *_ZTV10ActorRupee = _ZN10ActorRupeeD2Ev;
|
||||
char *gShipParts[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
|
||||
|
||||
extern u32 *data_ov14_021589d8;
|
||||
extern u32 data_ov00_020e9370[];
|
||||
extern u32 data_ov00_020eec9c[];
|
||||
extern PlayerLinkBase *data_027e0fc8; // gPlayerLink
|
||||
extern u32 **data_027e0fe0[];
|
||||
|
||||
ActorType ActorRupee::gType = ActorType(ActorTypeId_Rupee, (ActorCreateFunc) ActorRupee::Create, NULL);
|
||||
ActorType_UnkClass data_ov14_021589f4 = ActorType_UnkClass(0x3bb, 0xeeb);
|
||||
ActorType ActorRupee::gType = ActorType(ActorTypeId_Rupee, (ActorCreateFunc) ActorRupee::Create, NULL);
|
||||
|
||||
// #pragma section pinit begin
|
||||
// extern "C" void* data_ov14_0215591c = func_ov14_0215517c;
|
||||
// #pragma section pinit end
|
||||
#pragma section force_data begin
|
||||
ActorType_UnkClass data_ov14_021589f4 = ActorType_UnkClass(0x3bb, 0xeeb);
|
||||
#pragma section force_data end
|
||||
|
||||
ActorRupee *ActorRupee::Create() {
|
||||
ActorRupee *newRupee = new(*data_027e0fe0[0], 4) ActorRupee();
|
||||
return newRupee;
|
||||
}
|
||||
|
||||
// extern "C" asm ActorRupee *_ZN10ActorRupeeC1Ev(ActorRupee *thisx) {
|
||||
// _ZN5ActorC2Ev(thisx);
|
||||
// _ZTV10ActorRupee = thisx;
|
||||
// thisx->mRupeeId = 8;
|
||||
// thisx->mUnk_15c = 0;
|
||||
// return thisx;
|
||||
// }
|
||||
|
||||
// ActorRupee::ActorRupee() {
|
||||
// mRupeeId = 8;
|
||||
// mUnk_15c = 0;
|
||||
// }
|
||||
ActorRupee::ActorRupee() {
|
||||
mRupeeId = 8;
|
||||
mUnk_15c = 0;
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/1qjCc
|
||||
#define FP_1(n) (u64)((n) << 0x800)
|
||||
extern "C" void _ZN10ActorRupee18func_ov14_0213b204Ei();
|
||||
extern "C" void _ZN10ActorRupee18func_ov14_0213b70cEj();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_14Ei();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_18Ej();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_20Ei();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_60Ev();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_64Ev();
|
||||
bool ActorRupee::vfunc_08() {
|
||||
u32 dVar5;
|
||||
u32 iVar7;
|
||||
@@ -210,14 +179,14 @@ void ActorRupee::Update(bool param1) {
|
||||
cutsceneItemId = GetRupeeCutsceneItemId();
|
||||
|
||||
if (cutsceneItemId >= 0) {
|
||||
if (/*data_027e0fc8->*/ func_ov00_020bce48(data_027e0fc8, cutsceneItemId)) {
|
||||
if (gPlayerLink->func_ov00_020bce48(cutsceneItemId)) {
|
||||
Kill();
|
||||
} else {
|
||||
func_ov14_0213b204(3);
|
||||
}
|
||||
} else {
|
||||
ItemManager *pItem = gItemManager;
|
||||
rupeeValue = func_ov00_020c5a24(mRupeeId);
|
||||
rupeeValue = GetRupeeValue(mRupeeId);
|
||||
pItem->GiveRupees(rupeeValue, false); // giverupees
|
||||
uVar3 = -1;
|
||||
|
||||
@@ -255,8 +224,8 @@ void ActorRupee::Update(bool param1) {
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
PlayerLinkBase *pLink = data_027e0fc8;
|
||||
if (/*pLink->*/ func_ov00_020bce48(pLink, GetRupeeCutsceneItemId())) {
|
||||
PlayerLinkBase *pLink = gPlayerLink;
|
||||
if (pLink->func_ov00_020bce48(GetRupeeCutsceneItemId())) {
|
||||
Kill();
|
||||
}
|
||||
break;
|
||||
@@ -292,14 +261,14 @@ void ActorRupee::Update(bool param1) {
|
||||
KillInBounds();
|
||||
}
|
||||
|
||||
void ActorRupee::vfunc_14(bool param1) {
|
||||
void ActorRupee::vfunc_14(u32 param1) {
|
||||
if (func_ov00_020c313c(param1)) {
|
||||
Update(false);
|
||||
}
|
||||
func_ov00_0207a1c8(&mUnk_0a4.mUnk_00, param1, &mPos);
|
||||
}
|
||||
|
||||
void ActorRupee::vfunc_18(bool param1) {
|
||||
void ActorRupee::vfunc_18(u32 param1) {
|
||||
if (func_ov00_020c313c(param1)) {
|
||||
Update(true);
|
||||
}
|
||||
@@ -327,7 +296,6 @@ void ActorRupee::func_ov14_0213b5f4(RupeeId id, unk32 param2, Vec3p *param3, boo
|
||||
0xC, // RupeeId_Rupoor50
|
||||
};
|
||||
|
||||
func_ov00_0207a13c(&unk_class);
|
||||
func_ov14_0213b6a4(id, &unk_class);
|
||||
func_0202bc38(param2, param3, data_ov14_02153e28[id], &unk_class, 0);
|
||||
|
||||
@@ -366,8 +334,4 @@ bool ActorRupee::func_ov14_0213b70c(RupeeId id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
extern "C" asm void _ZN10ActorRupeeD0Ev() {}
|
||||
|
||||
extern "C" asm void _ZN10ActorRupeeD2Ev() {}
|
||||
|
||||
// ActorRupee::~ActorRupee() {}
|
||||
ActorRupee::~ActorRupee() {}
|
||||
|
||||
Reference in New Issue
Block a user