tp/include/d/actor/d_a_obj_wchain.h

86 lines
2.5 KiB
C++

#ifndef D_A_OBJ_WCHAIN_H
#define D_A_OBJ_WCHAIN_H
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_actor.h"
class daObjWchain_shape_c : public J3DPacket {
public:
void draw();
~daObjWchain_shape_c() {}
};
/**
* @ingroup actors-objects
* @class daObjWchain_c
* @brief Wolf Chain
*
* @details
*
*/
class daObjWchain_c : public fopAc_ac_c {
public:
int createHeap();
cPhs__Step create();
~daObjWchain_c();
void setMatrix();
s16 getChainAngleZ(cXyz*, int);
void setChainPos();
int execute();
int draw();
GXLightObj* getLightObj() { return &tevStr.mLightObj.mLightObj; }
J3DModelData* getChainModelData() { return mpChainModelData; }
cXyz* getChainPos() { return mChainPos; }
csXyz* getChainAngle() { return mChainAngle; }
s16* getChainAngleZ() { return mChainRotation; }
cXyz& getJumpAimPos() { return eyePos; }
cXyz& getTopPos() { return mTopPos; }
cXyz& getRoofPos() { return mRoofPos; }
f32 getPullLength() { return mPullLength; }
void setPullLength(f32 i_length) { mPullLength = i_length; }
f32 getInitOutLength() { return mInitOutLength; }
f32 getRealRoofY() { return mRealRoofY; }
f32 getMoveDisRate() { return mPullLength * 0.01f; }
f32 getLastOffset() { return 6.0f; }
f32 getDownOffset() { return 100.0f; }
f32 getSwitchOffset() { return 94.0f; }
u8 getSwitchNum() { return mSw; }
void onRide() { mRide = true; }
void offRide() { mRide = false; }
bool checkRideFlg() { return mRide; }
void onEndFlg() { mEnd = true; }
bool getEndFlg() { return mEnd; }
void onNowSwitchFlg() { mDown = mNowSwitch = true; }
private:
/* 0x568 */ request_of_phase_process_class mPhaseReq;
/* 0x570 */ J3DModel* mpHandleModel;
/* 0x574 */ J3DModelData* mpChainModelData;
/* 0x578 */ daObjWchain_shape_c mShape;
/* 0x588 */ cXyz mTopPos;
/* 0x594 */ cXyz mChainPos[0x10];
/* 0x654 */ cXyz mChainSpeed[0x10];
/* 0x714 */ csXyz mChainAngle[0x10];
/* 0x774 */ bool mRide;
/* 0x775 */ bool mNowSwitch;
/* 0x776 */ bool mEnd;
/* 0x777 */ bool mRidePrev;
/* 0x778 */ u8 mSw;
/* 0x779 */ u8 mRepeatable;
/* 0x77A */ bool mReset;
/* 0x77B */ bool mDown;
/* 0x77C */ s16 mHandleRotation;
/* 0x77E */ u16 field_0x77e;
/* 0x780 */ s16 mChainRotation[0x10];
/* 0x7A0 */ f32 mPullLength;
/* 0x7A4 */ f32 mInitOutLength;
/* 0x7A8 */ f32 field_0x7a8;
/* 0x7AC */ f32 mRealRoofY;
/* 0x7B0 */ cXyz mRoofPos;
};
STATIC_ASSERT(sizeof(daObjWchain_c) == 0x7BC);
#endif /* D_A_OBJ_WCHAIN_H */