mirror of
https://github.com/zeldaret/ss
synced 2026-09-12 04:19:22 -04:00
init
This commit is contained in:
@@ -120,7 +120,7 @@ public:
|
||||
/* vt 0x64 */ virtual bool restorePosRotFromCopy();
|
||||
/* vt 0x68 */ virtual void registerInEvent();
|
||||
/* vt 0x6C */ virtual void unkVirtFunc_0x6C();
|
||||
/* vt 0x70 */ virtual void doInteraction(s32);
|
||||
/* vt 0x70 */ virtual void doInteraction(s32 /* InteractionType */);
|
||||
|
||||
public:
|
||||
dAcBase_c();
|
||||
|
||||
@@ -1,15 +1,99 @@
|
||||
#ifndef D_A_OBJ_BARREL_H
|
||||
#define D_A_OBJ_BARREL_H
|
||||
|
||||
#include "d/a/d_a_base.h"
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/bg/d_bg_s_acch.h"
|
||||
#include "d/col/bg/d_bg_w.h"
|
||||
#include "d/col/c/c_bg_s_poly_info.h"
|
||||
#include "d/col/cc/d_cc_d.h"
|
||||
#include "d/d_shadow.h"
|
||||
#include "d/flag/sceneflag_manager.h"
|
||||
#include "m/m3d/m_smdl.h"
|
||||
#include "m/m_quat.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/g3d/res/g3d_resfile.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "s/s_StateMgr.hpp"
|
||||
#include "toBeSorted/d_emitter.h"
|
||||
#include "toBeSorted/time_area_mgr.h"
|
||||
|
||||
class dAcNpcCeLady_c;
|
||||
class dAcNpcCeFriend_c;
|
||||
|
||||
class dAcOBarrel_c : public dAcObjBase_c {
|
||||
public:
|
||||
enum Type {
|
||||
Normal,
|
||||
Explode,
|
||||
Type2,
|
||||
Kraken,
|
||||
};
|
||||
|
||||
dAcOBarrel_c() : mStateMgr(*this, sStateID::null) {}
|
||||
virtual ~dAcOBarrel_c() {}
|
||||
|
||||
virtual int doDelete() override;
|
||||
virtual int draw() override;
|
||||
virtual bool createHeap() override;
|
||||
virtual int actorCreate() override;
|
||||
virtual int actorPostCreate() override;
|
||||
virtual int actorExecute() override;
|
||||
|
||||
virtual void registerInEvent() override;
|
||||
virtual void unkVirtFunc_0x6C() override;
|
||||
virtual void doInteraction(s32) override;
|
||||
|
||||
/** fn_293_30D0 */
|
||||
void fn_293_30D0();
|
||||
|
||||
/** fn_293_3560 */
|
||||
void fn_293_3560();
|
||||
|
||||
/** fn_293_37B0 */
|
||||
void fn_293_37B0();
|
||||
|
||||
/** fn_293_3A20 */
|
||||
void updateMtx();
|
||||
|
||||
/** fn_293_3DB0 */
|
||||
void fn_293_3DB0();
|
||||
|
||||
/** fn_293_4200 */
|
||||
void fn_293_4200();
|
||||
|
||||
/** fn_293_45A0 */
|
||||
bool fn_293_45A0();
|
||||
|
||||
/** fn_293_4A90 */
|
||||
bool fn_293_4A90(const mAng &);
|
||||
|
||||
/** fn_293_4BC0 */
|
||||
bool fn_293_4BC0();
|
||||
|
||||
/** fn_293_4C60 */
|
||||
bool fn_293_4C60();
|
||||
|
||||
/** fn_293_4D00 */
|
||||
bool fn_293_4D00();
|
||||
|
||||
/** fn_293_4ED0 */
|
||||
bool fn_293_4ED0();
|
||||
|
||||
/** fn_293_50B0 */
|
||||
bool fn_293_50B0();
|
||||
|
||||
/** fn_293_5150 */
|
||||
bool fn_293_5150();
|
||||
|
||||
/** fn_293_5360 */
|
||||
void fn_293_5360();
|
||||
|
||||
/** fn_293_58C0 */
|
||||
void fn_293_58C0();
|
||||
|
||||
/** fn_293_5910 */
|
||||
void fn_293_5910();
|
||||
|
||||
STATE_FUNC_DECLARE(dAcOBarrel_c, Wait);
|
||||
STATE_FUNC_DECLARE(dAcOBarrel_c, Grab);
|
||||
STATE_FUNC_DECLARE(dAcOBarrel_c, GrabUp);
|
||||
@@ -21,8 +105,76 @@ public:
|
||||
STATE_FUNC_DECLARE(dAcOBarrel_c, KrakenBorn);
|
||||
STATE_FUNC_DECLARE(dAcOBarrel_c, Rebirth);
|
||||
|
||||
public:
|
||||
bool isType_0() const {
|
||||
return mType == Type2 || mType == Kraken;
|
||||
}
|
||||
|
||||
bool isTimeshiftableType() const {
|
||||
return mType & 1;
|
||||
}
|
||||
|
||||
bool checkFlag_0xE18() {
|
||||
return field_0xE18 < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(mRoomID, field_0xE18);
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x??? */ STATE_MGR_DECLARE(dAcOBarrel_c);
|
||||
/* 0x330 */ nw4r::g3d::ResFile mResFile;
|
||||
/* 0x334 */ m3d::smdl_c mMdl;
|
||||
/* 0x350 */ dShadowCircle_c mShadow;
|
||||
/* 0x358 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x3B4 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x764 */ cBgS_PolyInfo mPolyInfo;
|
||||
/* 0x790 */ dBgW mBgW;
|
||||
/* 0x9A0 */ dCcD_Cyl mCyl;
|
||||
/* 0xAF0 */ dCcD_Sph mSph;
|
||||
/* 0xC40 */ STATE_MGR_DECLARE(dAcOBarrel_c);
|
||||
/* 0xC7C */ TimeAreaStruct mTimeArea;
|
||||
/* 0xC88 */ dAcRef_c<dAcNpcCeLady_c> mCeLady;
|
||||
/* 0xC94 */ dAcRef_c<dAcNpcCeFriend_c> mCeFriend;
|
||||
/* 0xCA0 */ u8 _CA0[0xD08 - 0xCA0];
|
||||
/* 0xD08 */ dWaterEffect_c mWaterEffect;
|
||||
/* 0xD70 */ mQuat_c quat_0xD50;
|
||||
/* 0xD70 */ mQuat_c quat_0xD60;
|
||||
/* 0xD70 */ mQuat_c quat_0xD70;
|
||||
/* 0xD80 */ mQuat_c quat_0xD80;
|
||||
/* 0xD90 */ mQuat_c quat_0xD90;
|
||||
/* 0xDA0 */ mQuat_c quat_0xDA0;
|
||||
/* 0xDB0 */ u8 _DB0[0xDBC - 0xDB0];
|
||||
/* 0xDBC */ mVec3_c field_0xDBC;
|
||||
/* 0xDC8 */ u8 _DC8[0xDD4 - 0xDC8];
|
||||
/* 0xDD4 */ f32 field_0xDD4;
|
||||
/* 0xDD8 */ mVec3_c field_0xDD8;
|
||||
/* 0xDE4 */ mAng3_c field_0xDE4;
|
||||
/* 0xDEE */ u8 _DEA[0xDEC - 0xDEA];
|
||||
/* 0xDEC */ u16 field_0xDEC;
|
||||
/* 0xDEE */ u8 _DEE[0xE00 - 0xDEE];
|
||||
/* 0xE00 */ bool field_0xE00; //< Can Damage ?
|
||||
/* 0xE01 */ bool field_0xE01;
|
||||
/* 0xE02 */ bool field_0xE02;
|
||||
/* 0xE03 */ bool field_0xE03;
|
||||
/* 0xE04 */ bool field_0xE04;
|
||||
/* 0xE05 */ bool field_0xE05;
|
||||
/* 0xE06 */ bool field_0xE06;
|
||||
/* 0xE07 */ bool field_0xE07;
|
||||
/* 0xE08 */ bool field_0xE08;
|
||||
/* 0xE09 */ bool field_0xE09;
|
||||
/* 0xE0A */ bool field_0xE0A;
|
||||
/* 0xE0B */ bool field_0xE0B;
|
||||
/* 0xE0C */ bool field_0xE0C;
|
||||
/* 0xE0D */ bool field_0xE0D;
|
||||
/* 0xE0E */ bool field_0xE0E;
|
||||
/* 0xE0F */ u8 mType;
|
||||
/* 0xE10 */ u8 field_0xE10;
|
||||
/* 0xE11 */ u8 field_0xE11;
|
||||
/* 0xE12 */ u8 field_0xE12;
|
||||
/* 0xE13 */ u8 field_0xE13;
|
||||
/* 0xE14 */ u8 field_0xE14;
|
||||
/* 0xE15 */ u8 field_0xE15;
|
||||
/* 0xE16 */ u8 field_0xE16;
|
||||
/* 0xE17 */ u8 field_0xE17;
|
||||
/* 0xE18 */ u8 field_0xE18;
|
||||
/* 0xE19 */ u8 mBrokenFlag;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -62,6 +62,10 @@ public:
|
||||
return field_0x0E & pBg->GetField_0x22();
|
||||
}
|
||||
|
||||
void SetField_0xC(u16 v) {
|
||||
field_0x0C = v;
|
||||
}
|
||||
|
||||
void SetExtChk(const cBgS_Chk &other) {
|
||||
mPolyPassChk = other.mPolyPassChk;
|
||||
mGrpPassChk = other.mGrpPassChk;
|
||||
|
||||
@@ -830,6 +830,12 @@ public:
|
||||
void SetAtFlag(u32 flag) {
|
||||
mAt.SetSPrm(flag);
|
||||
}
|
||||
void SetAtGrp(u32 grp) {
|
||||
mAt.SetAtFlag(GetAtGrp() | grp);
|
||||
}
|
||||
void OffAtGrp(u32 grp) {
|
||||
mAt.SetAtFlag(GetAtGrp() & ~grp);
|
||||
}
|
||||
|
||||
void SetTgFlag_0xA(u16 flag) {
|
||||
mTg.SetFlag_0xA(flag);
|
||||
@@ -907,6 +913,9 @@ public:
|
||||
void OnAtSet() {
|
||||
mAt.OnSPrm(1);
|
||||
}
|
||||
void OffAtSet() {
|
||||
mAt.OffSPrm(1);
|
||||
}
|
||||
u32 ChkAtNoMass() const {
|
||||
return mAt.MskSPrm(0x400);
|
||||
}
|
||||
@@ -1000,7 +1009,6 @@ public:
|
||||
}
|
||||
|
||||
// Co
|
||||
|
||||
void SetCoGrp(u32 grp) {
|
||||
mCo.SetGrp(grp << 4);
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ public:
|
||||
~fManager_c() {}
|
||||
int getSearchTableNum();
|
||||
static fBase_c *searchBaseByID(fBaseID_e id);
|
||||
static fBase_c *searchBaseByProfName(ProfileName profID, const fBase_c *parent);
|
||||
static fBase_c *searchBaseByGroupType(u8 groupType, const fBase_c *parent);
|
||||
static fBase_c *searchBaseByProfName(ProfileName profID, const fBase_c *parent = nullptr);
|
||||
static fBase_c *searchBaseByGroupType(u8 groupType, const fBase_c *parent = nullptr);
|
||||
static void mainLoop();
|
||||
|
||||
private:
|
||||
|
||||
@@ -138,6 +138,10 @@ struct mAng {
|
||||
|
||||
s16 mVal;
|
||||
|
||||
static const mAng Zero() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
private:
|
||||
static const f32 sHalfCircleDeg;
|
||||
static const f32 sAngToDeg;
|
||||
|
||||
@@ -32,27 +32,27 @@ public:
|
||||
};
|
||||
|
||||
enum InteractionType {
|
||||
UNK_0,
|
||||
PICK_UP,
|
||||
OPEN,
|
||||
UNK_3,
|
||||
TALK,
|
||||
EXAMINE_TALK,
|
||||
EXAMINE_6,
|
||||
UNK_7,
|
||||
GET_IN,
|
||||
READY_SWORD,
|
||||
UNK_10,
|
||||
UNK_11,
|
||||
READ,
|
||||
GRAB,
|
||||
CATCH,
|
||||
UNK_15,
|
||||
UNK_16,
|
||||
DIG,
|
||||
UNK_18,
|
||||
SIT,
|
||||
UNK_20,
|
||||
/* 0 */ UNK_0,
|
||||
/* 1 */ PICK_UP,
|
||||
/* 2 */ OPEN,
|
||||
/* 3 */ UNK_3,
|
||||
/* 4 */ TALK,
|
||||
/* 5 */ EXAMINE_TALK,
|
||||
/* 6 */ EXAMINE_6,
|
||||
/* 7 */ UNK_7,
|
||||
/* 8 */ GET_IN,
|
||||
/* 9 */ READY_SWORD,
|
||||
/* 10 */ UNK_10,
|
||||
/* 11 */ UNK_11,
|
||||
/* 12 */ READ,
|
||||
/* 13 */ GRAB,
|
||||
/* 14 */ CATCH,
|
||||
/* 15 */ UNK_15,
|
||||
/* 16 */ UNK_16,
|
||||
/* 17 */ DIG,
|
||||
/* 18 */ UNK_18,
|
||||
/* 19 */ SIT,
|
||||
/* 20 */ UNK_20,
|
||||
|
||||
UNK_0x58 = 0x58,
|
||||
};
|
||||
@@ -171,7 +171,7 @@ public:
|
||||
|
||||
private:
|
||||
/* 0xBDC */ u8 field_0xBDC;
|
||||
|
||||
|
||||
public:
|
||||
static AttentionManager *sInstance;
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
static bool eventRelatedStateFlags_shift0x11_1();
|
||||
|
||||
// Something like isActorInEvent maybe?
|
||||
static bool FUN_800a0570(dAcBase_c *actor);
|
||||
static bool FUN_800a0570(const dAcBase_c *actor);
|
||||
static bool FUN_800a0ba0();
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user