mirror of
https://github.com/zeldaret/ph
synced 2026-07-07 21:31:01 -04:00
Decomp ActorRefill 94%
This commit is contained in:
@@ -2119,7 +2119,7 @@ _ZN11ItemManager17EquipCollidesWithEP8Cylinderi kind:function(arm,size=0x80) add
|
||||
_ZN11ItemManager18EquipItem_vfunc_2cEi kind:function(arm,size=0x1c) addr:0x20ad6f8
|
||||
_ZN11ItemManager12GetEquipItemEi kind:function(arm,size=0x18) addr:0x20ad714
|
||||
_ZNK11ItemManager7GetAmmoEi kind:function(arm,size=0x10) addr:0x20ad72c
|
||||
_ZN11ItemManager8GiveAmmoEit kind:function(arm,size=0x54) addr:0x20ad73c
|
||||
_ZN11ItemManager8GiveAmmoEij kind:function(arm,size=0x54) addr:0x20ad73c
|
||||
_ZN11ItemManager18func_ov00_020ad790Ei kind:function(arm,size=0x150) addr:0x20ad790
|
||||
_ZNK11ItemManager19GetEquippedShipPartEj kind:function(thumb,size=0x8) addr:0x20ad8e0
|
||||
_ZN11ItemManager13EquipShipPartEjj kind:function(thumb,size=0x8) addr:0x20ad8e8
|
||||
|
||||
@@ -2474,7 +2474,7 @@ from:0x02134efc kind:arm_call to:0x0202e9dc module:main
|
||||
from:0x02134f08 kind:arm_call to:0x021357bc module:overlay(14)
|
||||
from:0x02134f10 kind:load to:0x027e0fe0 module:dtcm
|
||||
from:0x02134f20 kind:arm_call to:0x020c1554 module:overlay(0)
|
||||
from:0x02134f50 kind:load to:0x02157cb8 module:overlay(14)
|
||||
from:0x02134f50 kind:load to:0x02157cb0 add:8 module:overlay(14)
|
||||
from:0x02134f5c kind:arm_call to:0x020c1730 module:overlay(0)
|
||||
from:0x02134f70 kind:arm_call to:0x020c1730 module:overlay(0)
|
||||
from:0x02134f78 kind:arm_call to:0x0202ea0c module:main
|
||||
@@ -2527,29 +2527,29 @@ from:0x021354b4 kind:arm_call to:0x0207c1b0 module:overlay(0)
|
||||
from:0x021354d8 kind:arm_call to:0x0207c1b0 module:overlay(0)
|
||||
from:0x021354ec kind:load to:0x027e0e58 module:dtcm
|
||||
from:0x02135504 kind:arm_call to:0x02134f14 module:overlay(14)
|
||||
from:0x02135528 kind:load to:0x02157bf8 module:overlay(14)
|
||||
from:0x02135528 kind:load to:0x02157bf0 add:8 module:overlay(14)
|
||||
from:0x02135534 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x02135548 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x02135550 kind:arm_call to:0x0202ea0c module:main
|
||||
from:0x02135570 kind:arm_call to:0x02134f14 module:overlay(14)
|
||||
from:0x02135594 kind:load to:0x02157b38 module:overlay(14)
|
||||
from:0x02135594 kind:load to:0x02157b30 add:8 module:overlay(14)
|
||||
from:0x021355a0 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x021355b4 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x021355bc kind:arm_call to:0x0202ea0c module:main
|
||||
from:0x021355dc kind:arm_call to:0x02134f14 module:overlay(14)
|
||||
from:0x02135600 kind:load to:0x02157a78 module:overlay(14)
|
||||
from:0x02135600 kind:load to:0x02157a70 add:8 module:overlay(14)
|
||||
from:0x0213560c kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x02135620 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x02135628 kind:arm_call to:0x0202ea0c module:main
|
||||
from:0x02135648 kind:arm_call to:0x02134f14 module:overlay(14)
|
||||
from:0x0213566c kind:load to:0x021579b8 module:overlay(14)
|
||||
from:0x0213566c kind:load to:0x021579b0 add:8 module:overlay(14)
|
||||
from:0x02135678 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x0213568c kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x02135694 kind:arm_call to:0x0202ea0c module:main
|
||||
from:0x021356a8 kind:arm_call to:0x02134f98 module:overlay(14)
|
||||
from:0x021357b0 kind:load to:0x027e0764 module:dtcm
|
||||
from:0x021357c8 kind:arm_call to:0x02134f14 module:overlay(14)
|
||||
from:0x021357ec kind:load to:0x021578f8 module:overlay(14)
|
||||
from:0x021357ec kind:load to:0x021578f0 add:8 module:overlay(14)
|
||||
from:0x021357f8 kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x0213580c kind:arm_call to:0x02134f84 module:overlay(14)
|
||||
from:0x02135814 kind:arm_call to:0x0202ea0c module:main
|
||||
|
||||
@@ -591,7 +591,7 @@ _ZN19ActorRefillBombchus6CreateEv kind:function(arm,size=0x30) addr:0x2134e54
|
||||
_ZN17ActorRefillArrows6CreateEv kind:function(arm,size=0x30) addr:0x2134e84
|
||||
_ZN15ActorRefillTime6CreateEv kind:function(arm,size=0x30) addr:0x2134eb4
|
||||
_ZN9ActorLSTM6CreateEv kind:function(arm,size=0x30) addr:0x2134ee4
|
||||
_ZN11ActorRefillC2Ev kind:function(arm,size=0x40) addr:0x2134f14
|
||||
_ZN11ActorRefillC2Ei kind:function(arm,size=0x40) addr:0x2134f14
|
||||
_ZN11ActorRefillD1Ev kind:function(arm,size=0x14) addr:0x2134f54
|
||||
_ZN11ActorRefillD0Ev kind:function(arm,size=0x1c) addr:0x2134f68
|
||||
_ZN11ActorRefillD2Ev kind:function(arm,size=0x14) addr:0x2134f84
|
||||
@@ -1855,12 +1855,12 @@ data_ov014_021578c4 kind:data(any) addr:0x21578c4
|
||||
data_ov014_021578c8 kind:data(any) addr:0x21578c8
|
||||
data_ov014_021578cc kind:data(any) addr:0x21578cc
|
||||
sShipTypes kind:data(any) addr:0x21578d0 local
|
||||
_ZTV9ActorLSTM kind:data(any) addr:0x21578f8
|
||||
_ZTV15ActorRefillTime kind:data(any) addr:0x21579b8
|
||||
_ZTV17ActorRefillArrows kind:data(any) addr:0x2157a78
|
||||
_ZTV19ActorRefillBombchus kind:data(any) addr:0x2157b38
|
||||
_ZTV16ActorRefillBombs kind:data(any) addr:0x2157bf8
|
||||
_ZTV11ActorRefill kind:data(any) addr:0x2157cb8
|
||||
_ZTV9ActorLSTM kind:data(any) addr:0x21578f0
|
||||
_ZTV15ActorRefillTime kind:data(any) addr:0x21579b0
|
||||
_ZTV17ActorRefillArrows kind:data(any) addr:0x2157a70
|
||||
_ZTV19ActorRefillBombchus kind:data(any) addr:0x2157b30
|
||||
_ZTV16ActorRefillBombs kind:data(any) addr:0x2157bf0
|
||||
_ZTV11ActorRefill kind:data(any) addr:0x2157cb0
|
||||
data_ov014_02157d70 kind:data(any) addr:0x2157d70
|
||||
data_ov014_02157d7c kind:data(any) addr:0x2157d7c
|
||||
data_ov014_02157d88 kind:data(any) addr:0x2157d88
|
||||
|
||||
@@ -2119,7 +2119,7 @@ _ZN11ItemManager17EquipCollidesWithEP8Cylinderi kind:function(arm,size=0x80) add
|
||||
_ZN11ItemManager18EquipItem_vfunc_2cEi kind:function(arm,size=0x1c) addr:0x20ad698
|
||||
_ZN11ItemManager12GetEquipItemEi kind:function(arm,size=0x18) addr:0x20ad6b4
|
||||
_ZNK11ItemManager7GetAmmoEi kind:function(arm,size=0x10) addr:0x20ad6cc
|
||||
_ZN11ItemManager8GiveAmmoEit kind:function(arm,size=0x54) addr:0x20ad6dc
|
||||
_ZN11ItemManager8GiveAmmoEij kind:function(arm,size=0x54) addr:0x20ad6dc
|
||||
_ZN11ItemManager18func_ov00_020ad790Ei kind:function(arm,size=0x150) addr:0x20ad730
|
||||
_ZNK11ItemManager19GetEquippedShipPartEj kind:function(thumb,size=0x8) addr:0x20ad880
|
||||
_ZN11ItemManager13EquipShipPartEjj kind:function(thumb,size=0x8) addr:0x20ad888
|
||||
|
||||
@@ -2474,7 +2474,7 @@ from:0x02134e58 kind:arm_call to:0x0202e9d8 module:main
|
||||
from:0x02134e64 kind:arm_call to:0x02135718 module:overlay(14)
|
||||
from:0x02134e6c kind:load to:0x027e0fe0 module:dtcm
|
||||
from:0x02134e7c kind:arm_call to:0x020c14f4 module:overlay(0)
|
||||
from:0x02134eac kind:load to:0x02157c18 module:overlay(14)
|
||||
from:0x02134eac kind:load to:0x02157c10 add:8 module:overlay(14)
|
||||
from:0x02134eb8 kind:arm_call to:0x020c16d0 module:overlay(0)
|
||||
from:0x02134ecc kind:arm_call to:0x020c16d0 module:overlay(0)
|
||||
from:0x02134ed4 kind:arm_call to:0x0202ea08 module:main
|
||||
@@ -2527,29 +2527,29 @@ from:0x02135410 kind:arm_call to:0x0207c150 module:overlay(0)
|
||||
from:0x02135434 kind:arm_call to:0x0207c150 module:overlay(0)
|
||||
from:0x02135448 kind:load to:0x027e0e58 module:dtcm
|
||||
from:0x02135460 kind:arm_call to:0x02134e70 module:overlay(14)
|
||||
from:0x02135484 kind:load to:0x02157b58 module:overlay(14)
|
||||
from:0x02135484 kind:load to:0x02157b50 add:8 module:overlay(14)
|
||||
from:0x02135490 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x021354a4 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x021354ac kind:arm_call to:0x0202ea08 module:main
|
||||
from:0x021354cc kind:arm_call to:0x02134e70 module:overlay(14)
|
||||
from:0x021354f0 kind:load to:0x02157a98 module:overlay(14)
|
||||
from:0x021354f0 kind:load to:0x02157a90 add:8 module:overlay(14)
|
||||
from:0x021354fc kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x02135510 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x02135518 kind:arm_call to:0x0202ea08 module:main
|
||||
from:0x02135538 kind:arm_call to:0x02134e70 module:overlay(14)
|
||||
from:0x0213555c kind:load to:0x021579d8 module:overlay(14)
|
||||
from:0x0213555c kind:load to:0x021579d0 add:8 module:overlay(14)
|
||||
from:0x02135568 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x0213557c kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x02135584 kind:arm_call to:0x0202ea08 module:main
|
||||
from:0x021355a4 kind:arm_call to:0x02134e70 module:overlay(14)
|
||||
from:0x021355c8 kind:load to:0x02157918 module:overlay(14)
|
||||
from:0x021355c8 kind:load to:0x02157910 add:8 module:overlay(14)
|
||||
from:0x021355d4 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x021355e8 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x021355f0 kind:arm_call to:0x0202ea08 module:main
|
||||
from:0x02135604 kind:arm_call to:0x02134ef4 module:overlay(14)
|
||||
from:0x0213570c kind:load to:0x027e0764 module:dtcm
|
||||
from:0x02135724 kind:arm_call to:0x02134e70 module:overlay(14)
|
||||
from:0x02135748 kind:load to:0x02157858 module:overlay(14)
|
||||
from:0x02135748 kind:load to:0x02157850 add:8 module:overlay(14)
|
||||
from:0x02135754 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x02135768 kind:arm_call to:0x02134ee0 module:overlay(14)
|
||||
from:0x02135770 kind:arm_call to:0x0202ea08 module:main
|
||||
|
||||
@@ -591,7 +591,7 @@ _ZN19ActorRefillBombchus6CreateEv kind:function(arm,size=0x30) addr:0x2134db0
|
||||
_ZN17ActorRefillArrows6CreateEv kind:function(arm,size=0x30) addr:0x2134de0
|
||||
_ZN15ActorRefillTime6CreateEv kind:function(arm,size=0x30) addr:0x2134e10
|
||||
_ZN9ActorLSTM6CreateEv kind:function(arm,size=0x30) addr:0x2134e40
|
||||
_ZN11ActorRefillC2Ev kind:function(arm,size=0x40) addr:0x2134e70
|
||||
_ZN11ActorRefillC2Ei kind:function(arm,size=0x40) addr:0x2134e70
|
||||
_ZN11ActorRefillD1Ev kind:function(arm,size=0x14) addr:0x2134eb0
|
||||
_ZN11ActorRefillD0Ev kind:function(arm,size=0x1c) addr:0x2134ec4
|
||||
_ZN11ActorRefillD2Ev kind:function(arm,size=0x14) addr:0x2134ee0
|
||||
@@ -1855,12 +1855,12 @@ data_ov014_021578c4 kind:data(any) addr:0x2157824
|
||||
data_ov014_021578c8 kind:data(any) addr:0x2157828
|
||||
data_ov014_021578cc kind:data(any) addr:0x215782c
|
||||
sShipTypes kind:data(any) addr:0x2157830 local
|
||||
_ZTV9ActorLSTM kind:data(any) addr:0x2157858
|
||||
_ZTV15ActorRefillTime kind:data(any) addr:0x2157918
|
||||
_ZTV17ActorRefillArrows kind:data(any) addr:0x21579d8
|
||||
_ZTV19ActorRefillBombchus kind:data(any) addr:0x2157a98
|
||||
_ZTV16ActorRefillBombs kind:data(any) addr:0x2157b58
|
||||
_ZTV11ActorRefill kind:data(any) addr:0x2157c18
|
||||
_ZTV9ActorLSTM kind:data(any) addr:0x2157850
|
||||
_ZTV15ActorRefillTime kind:data(any) addr:0x2157910
|
||||
_ZTV17ActorRefillArrows kind:data(any) addr:0x21579d0
|
||||
_ZTV19ActorRefillBombchus kind:data(any) addr:0x2157a90
|
||||
_ZTV16ActorRefillBombs kind:data(any) addr:0x2157b50
|
||||
_ZTV11ActorRefill kind:data(any) addr:0x2157c10
|
||||
data_ov014_02157d70 kind:data(any) addr:0x2157cd0
|
||||
data_ov014_02157d7c kind:data(any) addr:0x2157cdc
|
||||
data_ov014_02157d88 kind:data(any) addr:0x2157ce8
|
||||
|
||||
@@ -64,6 +64,7 @@ struct Actor_UnkStruct_0a4 {
|
||||
/* 14 */
|
||||
|
||||
Actor_UnkStruct_0a4(q20 x, q20 y, q20 z, s32 unk_10);
|
||||
void func_ov000_0207a1c8(unk32 param1, Vec3p *param2);
|
||||
};
|
||||
|
||||
class KillPickupsFilter : FilterActorReturn, public FilterActorBase {
|
||||
@@ -83,7 +84,8 @@ enum PlayerCollide_ {
|
||||
PlayerCollide_Gongoron = 0x8,
|
||||
PlayerCollide_Hammer = 0x10,
|
||||
|
||||
PlayerCollide_PickupFlags = PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player,
|
||||
/* 0x1b */ PlayerCollide_PickupFlags =
|
||||
PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player,
|
||||
};
|
||||
|
||||
struct Knockback {
|
||||
@@ -136,10 +138,10 @@ public:
|
||||
/* 108 */ unk8 mUnk_108;
|
||||
/* 109 */ unk8 mUnk_109;
|
||||
/* 10a */ unk8 mUnk_10a[0x6];
|
||||
/* 110 */ unk8 mUnk_110;
|
||||
/* 110 */ bool mUnk_110;
|
||||
/* 111 */ bool mUnk_111;
|
||||
/* 112 */ unk8 mUnk_112;
|
||||
/* 113 */ unk8 mUnk_113;
|
||||
/* 112 */ bool mUnk_112;
|
||||
/* 113 */ bool mUnk_113;
|
||||
/* 114 */ unk8 mUnk_114;
|
||||
/* 115 */ unk8 mUnk_115;
|
||||
/* 116 */ unk8 mUnk_116;
|
||||
|
||||
@@ -25,8 +25,13 @@ enum ActorTypeId_ {
|
||||
ActorTypeId_ShopItemShield = 'ITSL',
|
||||
ActorTypeId_ShopItemSoldOut = 'ITSO',
|
||||
|
||||
ActorTypeId_Heart = 'HART',
|
||||
ActorTypeId_Rupee = 'RUPY',
|
||||
ActorTypeId_RefillArrows = 'FLAL',
|
||||
ActorTypeId_RefillBombs = 'FLBM',
|
||||
ActorTypeId_RefillBombchus = 'FLBT',
|
||||
ActorTypeId_RefillTime = 'FLTM',
|
||||
ActorTypeId_Heart = 'HART',
|
||||
ActorTypeId_LSTM = 'LSTM',
|
||||
ActorTypeId_Rupee = 'RUPY',
|
||||
|
||||
ActorTypeId_Arrow = 'ARRW',
|
||||
ActorTypeId_Blast = 'BLST',
|
||||
|
||||
@@ -12,18 +12,18 @@ public:
|
||||
/* 158 */ unk32 mUnk_158;
|
||||
/* 15c */ unk32 mUnk_15c;
|
||||
/* 160 */ unk32 mUnk_160;
|
||||
/* 164 */ unk8 mUnk_164;
|
||||
/* 164 */ u8 mUnk_164;
|
||||
/* 165 */ unk8 mUnk_165[0x3];
|
||||
/* 168 */
|
||||
|
||||
public:
|
||||
ActorRefill();
|
||||
ActorRefill(unk32 param1);
|
||||
|
||||
/* 00 */ virtual ~ActorRefill() override;
|
||||
/* 08 */ virtual bool vfunc_08() override;
|
||||
/* 14 */ virtual void vfunc_14(u32 param1) override;
|
||||
/* 20 */ virtual void vfunc_20(bool param1) override;
|
||||
/* b4 */ virtual unk32 vfunc_b4() = 0;
|
||||
/* b4 */ virtual ItemFlag vfunc_b4() = 0;
|
||||
/* b8 */
|
||||
|
||||
bool func_ov014_02135364(unk32 param1);
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
static ActorRefillBombs *Create();
|
||||
|
||||
/* 00 */ virtual ~ActorRefillBombs() override;
|
||||
/* b4 */ virtual unk32 vfunc_b4() override;
|
||||
/* b4 */ virtual ItemFlag vfunc_b4() override;
|
||||
/* b8 */
|
||||
};
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
static ActorRefillBombchus *Create();
|
||||
|
||||
/* 00 */ virtual ~ActorRefillBombchus() override;
|
||||
/* b4 */ virtual unk32 vfunc_b4() override;
|
||||
/* b4 */ virtual ItemFlag vfunc_b4() override;
|
||||
/* b8 */
|
||||
};
|
||||
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
static ActorRefillArrows *Create();
|
||||
|
||||
/* 00 */ virtual ~ActorRefillArrows() override;
|
||||
/* b4 */ virtual unk32 vfunc_b4() override;
|
||||
/* b4 */ virtual ItemFlag vfunc_b4() override;
|
||||
/* b8 */
|
||||
};
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
|
||||
/* 00 */ virtual ~ActorRefillTime() override;
|
||||
/* 08 */ virtual bool vfunc_08() override;
|
||||
/* b4 */ virtual unk32 vfunc_b4() override;
|
||||
/* b4 */ virtual ItemFlag vfunc_b4() override;
|
||||
/* b8 */
|
||||
};
|
||||
|
||||
@@ -108,6 +108,6 @@ public:
|
||||
|
||||
/* 00 */ virtual ~ActorLSTM() override;
|
||||
/* 08 */ virtual bool vfunc_08() override;
|
||||
/* b4 */ virtual unk32 vfunc_b4() override;
|
||||
/* b4 */ virtual ItemFlag vfunc_b4() override;
|
||||
/* b8 */
|
||||
};
|
||||
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
|
||||
// Ammo
|
||||
u16 GetAmmo(ItemFlag equipId) const;
|
||||
void GiveAmmo(ItemFlag equipId, u16 amount);
|
||||
void GiveAmmo(ItemFlag equipId, u32 amount);
|
||||
u16 GetMaxAmmo(ItemFlag equipId) const;
|
||||
void UpgradeQuiver();
|
||||
void UpgradeBombBag();
|
||||
|
||||
@@ -231,7 +231,7 @@ ARM u16 ItemManager::GetAmmo(ItemFlag equipId) const {
|
||||
return (*mAmmo)[equipId];
|
||||
}
|
||||
|
||||
ARM void ItemManager::GiveAmmo(ItemFlag equipId, u16 amount) {
|
||||
ARM void ItemManager::GiveAmmo(ItemFlag equipId, u32 amount) {
|
||||
(*mAmmo)[equipId] += amount;
|
||||
if ((*mAmmo)[equipId] <= this->GetMaxAmmo(equipId)) return;
|
||||
(*mAmmo)[equipId] = this->GetMaxAmmo(equipId);
|
||||
|
||||
@@ -1,37 +1,354 @@
|
||||
#include "Actor/Player/ActorRefill.hpp"
|
||||
#include "DTCM/UnkStruct_027e0d38.hpp"
|
||||
#include "DTCM/UnkStruct_027e103c.hpp"
|
||||
#include "Item/ItemManager.hpp"
|
||||
#include "System/Random.hpp"
|
||||
|
||||
ActorType ActorRefillBombs::gType;
|
||||
ActorType ActorRefillBombchus::gType;
|
||||
ActorType ActorRefillArrows::gType;
|
||||
ActorType ActorRefillTime::gType;
|
||||
ActorType ActorLSTM::gType;
|
||||
static char *sShipTypes[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
|
||||
|
||||
ActorRefillBombs *ActorRefillBombs::Create() {}
|
||||
ActorRefillBombchus *ActorRefillBombchus::Create() {}
|
||||
ActorRefillArrows *ActorRefillArrows::Create() {}
|
||||
ActorRefillTime *ActorRefillTime::Create() {}
|
||||
ActorLSTM *ActorLSTM::Create() {}
|
||||
ActorRefill::ActorRefill() {}
|
||||
ActorRefill::~ActorRefill() {}
|
||||
bool ActorRefill::vfunc_08() {}
|
||||
void ActorRefill::vfunc_14(u32 param1) {}
|
||||
bool ActorRefill::func_ov014_02135364(unk32 param1) {}
|
||||
void ActorRefill::vfunc_20(bool param1) {}
|
||||
void ActorRefill::func_ov014_02135474() {}
|
||||
ActorRefillBombs::ActorRefillBombs() {}
|
||||
ActorRefillBombs::~ActorRefillBombs() {}
|
||||
unk32 ActorRefillBombs::vfunc_b4() {}
|
||||
ActorRefillBombchus::ActorRefillBombchus() {}
|
||||
ActorRefillBombchus::~ActorRefillBombchus() {}
|
||||
unk32 ActorRefillBombchus::vfunc_b4() {}
|
||||
ActorRefillArrows::ActorRefillArrows() {}
|
||||
ActorRefillArrows::~ActorRefillArrows() {}
|
||||
unk32 ActorRefillArrows::vfunc_b4() {}
|
||||
ActorRefillTime::ActorRefillTime() {}
|
||||
ActorRefillTime::~ActorRefillTime() {}
|
||||
bool ActorRefillTime::vfunc_08() {}
|
||||
unk32 ActorRefillTime::vfunc_b4() {}
|
||||
ActorLSTM::ActorLSTM() {}
|
||||
ActorLSTM::~ActorLSTM() {}
|
||||
bool ActorLSTM::vfunc_08() {}
|
||||
unk32 ActorLSTM::vfunc_b4() {}
|
||||
extern u32 **data_027e0fe0[];
|
||||
ARM ActorRefillBombs *ActorRefillBombs::Create() {
|
||||
return new(*data_027e0fe0[0], 4) ActorRefillBombs();
|
||||
}
|
||||
ActorType ActorRefillBombs::gType = ActorType(ActorTypeId_RefillBombs, (ActorCreateFunc) ActorRefillBombs::Create, NULL);
|
||||
|
||||
ARM ActorRefillBombchus *ActorRefillBombchus::Create() {
|
||||
return new(*data_027e0fe0[0], 4) ActorRefillBombchus();
|
||||
}
|
||||
ActorType ActorRefillBombchus::gType =
|
||||
ActorType(ActorTypeId_RefillBombchus, (ActorCreateFunc) ActorRefillBombchus::Create, NULL);
|
||||
|
||||
ARM ActorRefillArrows *ActorRefillArrows::Create() {
|
||||
return new(*data_027e0fe0[0], 4) ActorRefillArrows();
|
||||
}
|
||||
ActorType ActorRefillArrows::gType = ActorType(ActorTypeId_RefillArrows, (ActorCreateFunc) ActorRefillArrows::Create, NULL);
|
||||
|
||||
ARM ActorRefillTime *ActorRefillTime::Create() {
|
||||
return new(*data_027e0fe0[0], 4) ActorRefillTime();
|
||||
}
|
||||
ActorType ActorRefillTime::gType = ActorType(ActorTypeId_RefillTime, (ActorCreateFunc) ActorRefillTime::Create, NULL);
|
||||
|
||||
ARM ActorLSTM *ActorLSTM::Create() {
|
||||
return new(*data_027e0fe0[0], 4) ActorLSTM();
|
||||
}
|
||||
ActorType ActorLSTM::gType = ActorType(ActorTypeId_LSTM, (ActorCreateFunc) ActorLSTM::Create, NULL);
|
||||
|
||||
ARM ActorRefill::ActorRefill(unk32 param1) :
|
||||
mUnk_158(0),
|
||||
mUnk_15c(0x56),
|
||||
mUnk_160(param1),
|
||||
mUnk_164(0x1f) {}
|
||||
|
||||
ARM ActorRefill::~ActorRefill() {}
|
||||
|
||||
ARM bool ActorRefill::vfunc_08() {
|
||||
ItemManager *itemManager;
|
||||
|
||||
if (this->vfunc_b4() == ItemFlag_None) {
|
||||
if (data_027e0d38->func_ov000_02078b40() != 3) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
ItemManager *itemManager = gItemManager;
|
||||
ItemFlag item = this->vfunc_b4();
|
||||
if (!itemManager->HasItem(item)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
mHitbox.pos.x = 0;
|
||||
mHitbox.pos.y = FLOAT_TO_Q20(0.3);
|
||||
mHitbox.pos.z = 0;
|
||||
mHitbox.size = FLOAT_TO_Q20(0.3);
|
||||
mUnk_08c.pos.x = mHitbox.pos.x;
|
||||
mUnk_08c.pos.y = mHitbox.pos.y;
|
||||
mUnk_08c.pos.z = mHitbox.pos.z;
|
||||
mUnk_08c.size = mHitbox.size;
|
||||
mUnk_0a4.mUnk_04.x = 0;
|
||||
mUnk_0a4.mUnk_04.y = FLOAT_TO_Q20(0.3);
|
||||
mUnk_0a4.mUnk_04.z = 0;
|
||||
mUnk_0a4.mUnk_10 = FLOAT_TO_Q20(1.3);
|
||||
mUnk_09c.mUnk_0 &= ~0xa4;
|
||||
mUnk_09c.mUnk_3 = 1;
|
||||
mMaxFall = mUnk_08c.size + -1;
|
||||
this->func_ov014_02135364(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
extern unk32 data_ov000_020eec9c;
|
||||
extern "C" void func_ov000_020d7ad4(unk32 *param1, unk32 param2);
|
||||
ARM void ActorRefill::vfunc_14(u32 param1) {
|
||||
s32 temp_r0_4;
|
||||
s32 temp_r6;
|
||||
s8 var_r0;
|
||||
u32 temp_r0;
|
||||
u32 temp_r0_3;
|
||||
u32 temp_r1;
|
||||
Vec3p *temp_r0_2;
|
||||
|
||||
if (this->func_ov00_020c313c(param1) != 0) {
|
||||
this->IncreaseActiveFrames();
|
||||
temp_r0 = mUnk_130;
|
||||
switch (temp_r0) {
|
||||
case 0:
|
||||
this->ApplyGravity();
|
||||
temp_r0_2 = &mPos;
|
||||
Vec3p_Add(temp_r0_2, &mVel, temp_r0_2);
|
||||
this->func_01fffd04(0);
|
||||
if (mUnk_110 || mUnk_112 || mUnk_113) {
|
||||
mVel.x = 0;
|
||||
mVel.z = 0;
|
||||
}
|
||||
if (mUnk_111) {
|
||||
this->func_ov014_02135364(1);
|
||||
} else if (this->func_ov00_020c2c0c()) {
|
||||
this->func_ov014_02135364(4);
|
||||
} else if (this->func_ov00_020c2d54()) {
|
||||
this->func_ov014_02135364(5);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
case 5:
|
||||
if (this->CollidesWithPlayer(PlayerCollide_PickupFlags) != 0) {
|
||||
if (this->vfunc_b4() == -1) {
|
||||
data_027e103c->func_ov000_020cfbf0(mUnk_158 * 60, 1, 0);
|
||||
} else {
|
||||
ItemManager *itemManager = gItemManager;
|
||||
itemManager->GiveAmmo(this->vfunc_b4(), mUnk_158);
|
||||
}
|
||||
func_ov000_020d7ad4(&data_ov000_020eec9c, 0x100);
|
||||
this->func_ov014_02135364(3);
|
||||
} else {
|
||||
temp_r0_3 = mUnk_130;
|
||||
switch (temp_r0_3) {
|
||||
case 0:
|
||||
case 3: break;
|
||||
case 1:
|
||||
if (this->func_ov00_020c2c0c()) {
|
||||
this->func_ov014_02135364(4);
|
||||
} else if (this->func_ov00_020c2d54()) {
|
||||
this->func_ov014_02135364(5);
|
||||
} else if (mActiveFrames >= 180) {
|
||||
this->func_ov014_02135364(2);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
#define ROTATE_RIGHT(x, n) ((x >> n) | (x << (32 - n)))
|
||||
temp_r0_4 = mActiveFrames;
|
||||
temp_r1 = (u32) temp_r0_4 >> 31;
|
||||
|
||||
if ((temp_r1 + ROTATE_RIGHT((temp_r0_4 << 29) - temp_r1, 29)) < 4) {
|
||||
var_r0 = 0;
|
||||
} else {
|
||||
var_r0 = 31;
|
||||
}
|
||||
mUnk_164 = var_r0;
|
||||
if (this->func_ov00_020c2c0c()) {
|
||||
this->func_ov014_02135364(4);
|
||||
} else if (this->func_ov00_020c2d54()) {
|
||||
this->func_ov014_02135364(5);
|
||||
} else if (mActiveFrames >= 60) {
|
||||
this->func_ov014_02135364(3);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (!this->func_ov00_020c2c70()) {
|
||||
this->func_ov014_02135364(1);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (!this->func_ov00_020c2de4()) {
|
||||
this->func_ov014_02135364(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
this->KillInBounds();
|
||||
}
|
||||
mUnk_0a4.func_ov000_0207a1c8(param1, &mPos);
|
||||
}
|
||||
|
||||
ARM bool ActorRefill::func_ov014_02135364(unk32 param1) {
|
||||
mUnk_130 = param1;
|
||||
mUnk_164 = 31;
|
||||
mActiveFrames = 0;
|
||||
switch (mUnk_130) {
|
||||
case 0:
|
||||
case 2: break;
|
||||
case 1:
|
||||
mVel.x = 0;
|
||||
mVel.y = 0;
|
||||
mVel.z = 0;
|
||||
break;
|
||||
case 3: this->Kill(); break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
extern "C" void func_0202bc38(bool param1, Vec3p *pos, unk32 param2, Actor_UnkStruct_012 *param3, unk32 param4);
|
||||
extern u32 data_ov000_020e9370[];
|
||||
extern "C" void func_ov005_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);
|
||||
ARM void ActorRefill::vfunc_20(bool param1) {
|
||||
bool var_r0;
|
||||
|
||||
if (param1) {
|
||||
var_r0 = mUnk_0a4.mUnk_01;
|
||||
} else {
|
||||
var_r0 = mUnk_0a4.mUnk_00;
|
||||
}
|
||||
if (var_r0 && mUnk_164 != 0) {
|
||||
Actor_UnkStruct_012 sp18;
|
||||
sp18.mUnk_04 = 5;
|
||||
sp18.mUnk_08 = 2;
|
||||
sp18.mUnk_0c = 2;
|
||||
sp18.mUnk_14 = 0x800;
|
||||
sp18.mUnk_18 = 0x1000;
|
||||
sp18.mUnk_02 = mUnk_164;
|
||||
func_0202bc38(param1, &mPos, mUnk_15c, &sp18, 0);
|
||||
func_ov005_02102c2c(&data_ov000_020e9370[0], 0, &mPos, 0x400, 0, mUnk_164, 0, 0, 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
extern unk32 data_027e0e58;
|
||||
extern "C" void func_ov000_0207c1b0(unk32 *param1, unk32 param2, Vec3p *param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
ARM void ActorRefill::func_ov014_02135474() {
|
||||
s32 iVar1 = mUnk_130;
|
||||
if (iVar1 != 4 && iVar1 != 5) {
|
||||
func_ov000_0207c1b0(&data_027e0e58, 0x241, &mPos, 2, 0, 0);
|
||||
func_ov000_0207c1b0(&data_027e0e58, 0x242, &mPos, 2, 0, 0);
|
||||
mAlive = false;
|
||||
}
|
||||
}
|
||||
|
||||
ARM ActorRefillBombs::ActorRefillBombs() :
|
||||
ActorRefill(0) {
|
||||
mUnk_158 = 3;
|
||||
mUnk_15c = 0x2e;
|
||||
}
|
||||
|
||||
ARM ActorRefillBombs::~ActorRefillBombs() {}
|
||||
|
||||
ARM ItemFlag ActorRefillBombs::vfunc_b4() {
|
||||
return ItemFlag_BombBag;
|
||||
}
|
||||
|
||||
ARM ActorRefillBombchus::ActorRefillBombchus() :
|
||||
ActorRefill(1) {
|
||||
mUnk_158 = 3;
|
||||
mUnk_15c = 0x2f;
|
||||
}
|
||||
|
||||
ARM ActorRefillBombchus::~ActorRefillBombchus() {}
|
||||
|
||||
ARM ItemFlag ActorRefillBombchus::vfunc_b4() {
|
||||
return ItemFlag_BombchuBag;
|
||||
}
|
||||
|
||||
ARM ActorRefillArrows::ActorRefillArrows() :
|
||||
ActorRefill(2) {
|
||||
mUnk_158 = 5;
|
||||
mUnk_15c = 0x2d;
|
||||
}
|
||||
|
||||
ARM ActorRefillArrows::~ActorRefillArrows() {}
|
||||
|
||||
ARM ItemFlag ActorRefillArrows::vfunc_b4() {
|
||||
return ItemFlag_Bow;
|
||||
}
|
||||
|
||||
ARM ActorRefillTime::ActorRefillTime() :
|
||||
ActorRefill(3) {
|
||||
mUnk_158 = 5;
|
||||
mUnk_15c = 0x44;
|
||||
}
|
||||
|
||||
ARM ActorRefillTime::~ActorRefillTime() {}
|
||||
|
||||
ARM bool ActorRefillTime::vfunc_08() {
|
||||
|
||||
if (!ActorRefill::vfunc_08()) {
|
||||
return false;
|
||||
}
|
||||
switch (mUnk_020.mUnk_00[0]) {
|
||||
case 2: mUnk_158 = 5; break;
|
||||
case 4: mUnk_158 = 15; break;
|
||||
case 5: mUnk_158 = 30; break;
|
||||
default:
|
||||
case 0:
|
||||
case 1:
|
||||
case 3:
|
||||
s32 temp_ip = gRandom->Next(10);
|
||||
if (temp_ip >= 9) {
|
||||
mUnk_158 = 30;
|
||||
} else if (temp_ip >= 6) {
|
||||
mUnk_158 = 15;
|
||||
} else {
|
||||
mUnk_158 = 5;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (mUnk_158 != -0x1E) {
|
||||
if (mUnk_158 == -0xF) {
|
||||
mUnk_15c = 0x48;
|
||||
} else {
|
||||
mUnk_15c = 0x47;
|
||||
}
|
||||
} else {
|
||||
mUnk_15c = 0x49;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
ARM ItemFlag ActorRefillTime::vfunc_b4() {
|
||||
return ItemFlag_None;
|
||||
}
|
||||
|
||||
ARM ActorLSTM::ActorLSTM() :
|
||||
ActorRefill(3) {
|
||||
mUnk_158 = -5;
|
||||
mUnk_15c = 0x47;
|
||||
}
|
||||
|
||||
ARM ActorLSTM::~ActorLSTM() {}
|
||||
|
||||
ARM bool ActorLSTM::vfunc_08() {
|
||||
if (!ActorRefill::vfunc_08()) {
|
||||
return false;
|
||||
}
|
||||
switch (mUnk_020.mUnk_00[0]) {
|
||||
case 2: mUnk_158 = -5; break;
|
||||
case 4: mUnk_158 = -15; break;
|
||||
case 5: mUnk_158 = -30; break;
|
||||
default:
|
||||
case 0:
|
||||
case 1:
|
||||
case 3:
|
||||
s32 temp_ip = gRandom->Next(10);
|
||||
if (temp_ip >= 9) {
|
||||
mUnk_158 = -30;
|
||||
} else if (temp_ip >= 6) {
|
||||
mUnk_158 = -15;
|
||||
} else {
|
||||
mUnk_158 = -5;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (mUnk_158 != -0x1E) {
|
||||
if (mUnk_158 == -0xF) {
|
||||
mUnk_15c = 0x48;
|
||||
} else {
|
||||
mUnk_15c = 0x47;
|
||||
}
|
||||
} else {
|
||||
mUnk_15c = 0x49;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
ARM ItemFlag ActorLSTM::vfunc_b4() {
|
||||
return ItemFlag_None;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user