mirror of https://github.com/zeldaret/tp.git
86 lines
2.5 KiB
C++
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 */
|