Files
st/include/Actor/ActorItemDrop.hpp
T
Yanis 8490ce55c3 Make hex number case more consistent (#83)
* consistent hex in vfunc names

* consistent hex in code

* Actor_c4 -> Actor_C4, Actor_9c -> Actor_9C
2026-06-17 22:34:56 +02:00

153 lines
3.7 KiB
C++

#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"
typedef u32 ItemDropType;
enum ItemDropType_ {
ItemDropType_Arrow = 0,
ItemDropType_Bomb = 1,
ItemDropType_RedPotion = 2,
ItemDropType_DemonFossil = 3,
ItemDropType_StalfosSkull = 4,
ItemDropType_StarFragment = 5,
ItemDropType_BeeLarvae = 6,
ItemDropType_WoodHeart = 7,
ItemDropType_PirateNecklace = 8,
ItemDropType_Unknown = 9,
ItemDropType_Max = 10,
};
enum ActorItemDropState_ {
ActorItemDropState_0 = 0,
ActorItemDropState_1 = 1,
ActorItemDropState_2 = 2,
ActorItemDropState_3 = 3,
ActorItemDropState_4 = 4,
ActorItemDropState_5 = 5,
ActorItemDropState_6 = 6,
ActorItemDropState_Max,
};
class ActorItemDrop_C4 : public Actor_C4 {
public:
// func_ov031_020fa9f8
ActorItemDrop_C4(Actor *param1);
virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
virtual void vfunc_04() override;
virtual void vfunc_08() override;
virtual void vfunc_0C(unk32 param1) override;
};
class ActorItemDrop : public Actor_Derived2 {
public:
/* 000 (base) */
/* 0AE */ volatile u16 mUnk_AE;
/* 0B0 */ u16 mUnk_B0;
/* 0B2 */ STRUCT_PAD(0xB2, 0xB4);
/* 0B4 */ Actor_9C mUnk_B4;
/* 0B8 */ unk32 mUnk_B8;
/* 0BC */ unk32 mUnk_BC;
/* 0C0 */ ActorRef mUnk_C0;
/* 0C4 */ STRUCT_PAD(0x0C4, 0x0D0);
/* 0D0 */ u16 mUnk_D0;
/* 0D4 */ ItemDropType mItemTypeId;
/* 0D8 */ fx32 mUnk_D8;
/* 0DC */ ActorRef mUnk_DC;
/* 0E0 */ ActorRef mUnk_E0;
/* 0E4 */ ActorItemDrop_C4 mUnk_E4;
/* 108 */ unk16 mUnk_108;
/* 10A */ STRUCT_PAD(0x10A, 0x10C);
/* 10C */ VecFx32 mUnk_10C;
/* 118 */ bool mUnk_118;
/* 119 */ bool mUnk_119;
bool IsTimerOut() {
if (this->mUnk_AE < this->mUnk_B0) {
this->mUnk_AE++;
return false;
}
return true;
}
ActorItemDrop();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 4C */ virtual ~ActorItemDrop() override;
void func_ov031_020fa260();
void SetState(ActorState state);
void func_ov031_020fa900();
static void func_ov031_020f9f8c(ActorRef *pOutRef, const VecFx32 *pPos, u32 params, ActorRef ref);
// data_ov031_02114bb0
void func_ov031_020fa46c();
void func_ov031_020fa4a0();
void func_ov031_020fa568();
void func_ov031_020fa5f0();
void func_ov031_020fa664();
void func_ov031_020fa678();
void func_ov031_020fa72c();
// data_ov031_02114be8
void func_ov031_020fa468();
void func_ov031_020fa494();
void func_ov031_020fa524();
void func_ov031_020fa5d8();
void func_ov031_020fa650();
void func_ov031_020fa668();
void func_ov031_020fa6c8();
};
class ActorProfileArrowDrop : public ActorProfile {
public:
/* 00 (base) */
ActorProfileArrowDrop();
/* 0C */ virtual Actor *Create();
static ActorProfileArrowDrop *GetProfile();
};
class ActorProfileBombDrop : public ActorProfile {
public:
/* 00 (base) */
ActorProfileBombDrop();
/* 0C */ virtual Actor *Create();
static ActorProfileBombDrop *GetProfile();
};
class ActorProfileRedPotionDrop : public ActorProfile {
public:
/* 00 (base) */
ActorProfileRedPotionDrop();
/* 0C */ virtual Actor *Create();
static ActorProfileRedPotionDrop *GetProfile();
};
class ActorProfileTreasureDrop : public ActorProfile {
public:
/* 00 (base) */
ActorProfileTreasureDrop();
/* 0C */ virtual Actor *Create();
static ActorProfileTreasureDrop *GetProfile();
};