d_a_cstatue Matching (#2419)

* d_a_cstatue

* fix includes in d_com_inf_game

* remove todos

* create daCstatue_TYPE enum

* name fields and add enums

* fix procCopyRodSwingInit

* apply suggestions
This commit is contained in:
soruh 2025-05-05 18:56:03 +02:00 committed by GitHub
parent 8d167fc32f
commit 885981cd0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 1473 additions and 1723 deletions

View File

@ -1627,7 +1627,7 @@ config.libs = [
ActorRel(Equivalent, "d_a_coach_2D"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_coach_fire"),
ActorRel(Equivalent, "d_a_cow"),
ActorRel(NonMatching, "d_a_cstatue"),
ActorRel(MatchingFor("GZ2E01"), "d_a_cstatue"),
ActorRel(Equivalent, "d_a_do"), # Z2SoundObjSimple dtor
ActorRel(MatchingFor("GZ2E01"), "d_a_door_boss"),
ActorRel(MatchingFor("GZ2E01"), "d_a_door_bossL5"),

View File

@ -2,18 +2,18 @@
#define D_A_D_A_ALINK_H
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2WolfHowlMgr.h"
#include "d/actor/d_a_player.h"
#include "d/actor/d_a_tag_mmsg.h"
#include "d/d_eye_hl.h"
#include "d/d_jnt_col.h"
#include "d/d_msg_flow.h"
#include "d/d_particle_copoly.h"
#include "d/d_save.h"
#include "f_op/f_op_actor_mng.h"
#include "d/actor/d_a_tag_mmsg.h"
class J2DAnmColorKey;
class J2DAnmTransformKey;
@ -147,9 +147,7 @@ public:
daAlink_matAnm_c() { init(); }
/* 8009D8E4 */ void init();
/* 800D0180 */ void offSetFlg() {
mSetFlag = FALSE;
}
/* 800D0180 */ void offSetFlg() { mSetFlag = FALSE; }
/* 800D0B8C */ virtual ~daAlink_matAnm_c() {}
/* 8009D90C */ virtual void calc(J3DMaterial*) const;
@ -157,7 +155,7 @@ public:
static void decMorfFrame() { cLib_calcTimer<u8>(&m_morf_frame); }
static void setMorfFrame(u8 i_frame) { m_morf_frame = i_frame; }
static u8 getMorfFrame() { return m_morf_frame; }
static void onEyeMoveFlg() { m_eye_move_flg = true; }
static void offEyeMoveFlg() { m_eye_move_flg = false; }
static bool getEyeMoveFlg() { return m_eye_move_flg; }
@ -895,7 +893,8 @@ public:
/* 0x00000100 */ MODE_UNK_100 = 0x100,
/* 0x00000400 */ MODE_RIDING = 0x400,
/* 0x00000800 */ MODE_UNK_800 = 0x800,
/* 0x00001000 */ MODE_UNK_1000 = 0x1000, // affects things like anim set when controlling rod statue
/* 0x00001000 */ MODE_UNK_1000 =
0x1000, // affects things like anim set when controlling rod statue
/* 0x00002000 */ MODE_UNK_2000 = 0x2000,
/* 0x00004000 */ MODE_UNK_4000 = 0x4000,
/* 0x00008000 */ MODE_UNK_8000 = 0x8000,
@ -1408,8 +1407,8 @@ public:
/* 800AC738 */ void setDoubleAnimeBlendRatio(f32);
/* 800AC754 */ void commonDoubleAnime(J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*,
J3DAnmTransform*, f32, f32, f32, int);
/* 800ACA14 */ int setDoubleAnime(f32, f32, f32, daAlink_c::daAlink_ANM,
daAlink_c::daAlink_ANM, int, f32);
/* 800ACA14 */ int setDoubleAnime(f32, f32, f32, daAlink_c::daAlink_ANM, daAlink_c::daAlink_ANM,
int, f32);
/* 800ACD40 */ void commonSingleAnime(J3DAnmTransform*, J3DAnmTransform*, f32, f32, s16);
/* 800ACF80 */ void setSingleAnimeBase(daAlink_c::daAlink_ANM anmID);
/* 800ACFB0 */ void setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anmID, f32);
@ -1725,10 +1724,10 @@ public:
/* 800D0110 */ BOOL checkWolfEnemyThrowAnime() const {
return checkUpperAnime(0x2BD) || checkUpperAnime(0x2BE);
}
/* 800D014C */ void setMidnaTalkStatus(u8 status) {
dComIfGp_setZStatus(status, 0);
/* 800D014C */ void setMidnaTalkStatus(u8 status) { dComIfGp_setZStatus(status, 0); }
/* 800D0164 */ void set3DStatus(u8 status, u8 direction) {
dComIfGp_set3DStatus(status, direction, 0);
}
/* 800D0164 */ void set3DStatus(u8 status, u8 direction) { dComIfGp_set3DStatus(status, direction, 0); }
/* 800D2684 */ void checkCutTurnCharge();
/* 800D0E08 */ void checkLightSwordMtrl();
/* 800D0E98 */ BOOL checkSwordEquipAnime() const;
@ -1748,8 +1747,8 @@ public:
/* 800D1454 */ void checkComboCnt();
/* 800D152C */ void setCutType(u8);
/* 800D1540 */ void setCylAtParam(u32, dCcG_At_Spl, u8, u8, int, f32, f32);
/* 800D1688 */ void setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, f32 param_4,
f32 i_radius);
/* 800D1688 */ void setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp,
f32 param_4, f32 i_radius);
/* 800D1788 */ static BOOL notSwordHitVibActor(fopAc_ac_c*);
/* 800D17EC */ BOOL setSwordHitVibration(dCcD_GObjInf*);
/* 800D1920 */ BOOL checkAtShieldHit(dCcD_GObjInf&);
@ -2717,7 +2716,8 @@ public:
/* 80120500 */ int commonLargeDamageUpInit(int, int, s16, s16);
/* 80120534 */ int commonFallInit(int);
/* 80120580 */ JPABaseEmitter* setEmitter(u32*, u16, cXyz const*, csXyz const*);
/* 80120634 */ JPABaseEmitter* setEmitterPolyColor(u32*, u16, cBgS_PolyInfo&, cXyz const*, csXyz const*);
/* 80120634 */ JPABaseEmitter* setEmitterPolyColor(u32*, u16, cBgS_PolyInfo&, cXyz const*,
csXyz const*);
/* 801206C4 */ JPABaseEmitter* setEmitterColor(u32*, u16, cXyz const*, csXyz const*);
/* 80120778 */ void stopDrawParticle(u32);
/* 801207BC */ void setEffectFrontRollParam();
@ -2788,7 +2788,7 @@ public:
/* 80129114 */ void setBlendWolfAtnMoveAnime(f32);
/* 8012933C */ void setBlendWolfAtnBackMoveAnime(f32);
/* 8012948C */ int setDoubleAnimeWolf(f32, f32, f32, daAlink_c::daAlink_WANM,
daAlink_c::daAlink_WANM, int, f32);
daAlink_c::daAlink_WANM, int, f32);
/* 80129678 */ void setSingleAnimeWolfBase(daAlink_c::daAlink_WANM);
/* 801296A8 */ void setSingleAnimeWolfBaseMorf(daAlink_c::daAlink_WANM, f32);
/* 801296D8 */ void setSingleAnimeWolfBaseSpeed(daAlink_c::daAlink_WANM, f32, f32);
@ -3022,8 +3022,13 @@ public:
/* 80140984 */ void statusWindowDraw();
/* 80140AC8 */ void resetStatusWindow();
/* 8018280C */ fopAc_ac_c* getChainGrabActor() { return field_0x2844.getActor(); }
/* 80182814 */ bool checkCokkoGlide() const { return mProcID == PROC_AUTO_JUMP && mProcVar2.field_0x300c != 0; }
/* 8018283C */ BOOL checkCameraLargeDamage() const { return mProcID == PROC_LARGE_DAMAGE || mProcID == PROC_LARGE_DAMAGE_WALL || mProcID == PROC_LARGE_DAMAGE_UP || mProcID == PROC_WOLF_LARGE_DAMAGE_UP; }
/* 80182814 */ bool checkCokkoGlide() const {
return mProcID == PROC_AUTO_JUMP && mProcVar2.field_0x300c != 0;
}
/* 8018283C */ BOOL checkCameraLargeDamage() const {
return mProcID == PROC_LARGE_DAMAGE || mProcID == PROC_LARGE_DAMAGE_WALL ||
mProcID == PROC_LARGE_DAMAGE_UP || mProcID == PROC_WOLF_LARGE_DAMAGE_UP;
}
/* 80182870 */ const cXyz& getHsSubChainTopPos() const { return mIronBallBgChkPos; }
/* 80182888 */ BOOL checkCutHeadProc() const { return mProcID == PROC_CUT_HEAD; }
/* 8018289C */ fopAc_ac_c* getRideActor() { return mRideAcKeep.getActor(); }
@ -3048,29 +3053,47 @@ public:
if (mHeldItemModel != NULL && checkBottleItem(mEquipItem)) {
return mHeldItemModel->getBaseTRMtx();
}
return NULL;
}
virtual BOOL checkPlayerGuard() const;
virtual u32 checkPlayerFly() const {
return checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP);
return checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 |
MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP);
}
virtual BOOL checkFrontRoll() const { return mProcID == PROC_FRONT_ROLL; }
virtual BOOL checkWolfDash() const { return mProcID == PROC_WOLF_DASH; }
virtual BOOL checkAutoJump() const { return mProcID == PROC_AUTO_JUMP || mProcID == PROC_WOLF_AUTO_JUMP; }
virtual bool checkSideStep() const { return (mProcID == PROC_SIDESTEP || mProcID == PROC_WOLF_SIDESTEP) && mProcVar1.field_0x300a != 0; }
virtual bool checkWolfTriggerJump() const { return mProcID == PROC_WOLF_SIDESTEP || mProcID == PROC_WOLF_JUMP_ATTACK; }
virtual BOOL checkAutoJump() const {
return mProcID == PROC_AUTO_JUMP || mProcID == PROC_WOLF_AUTO_JUMP;
}
virtual bool checkSideStep() const {
return (mProcID == PROC_SIDESTEP || mProcID == PROC_WOLF_SIDESTEP) &&
mProcVar1.field_0x300a != 0;
}
virtual bool checkWolfTriggerJump() const {
return mProcID == PROC_WOLF_SIDESTEP || mProcID == PROC_WOLF_JUMP_ATTACK;
}
virtual BOOL checkGuardBreakMode() const { return mProcID == PROC_GUARD_BREAK; }
virtual bool checkLv3Slide() const { return mProcID == PROC_SLIDE && mProcVar3.field_0x300e != 0; }
virtual bool checkLv3Slide() const {
return mProcID == PROC_SLIDE && mProcVar3.field_0x300e != 0;
}
virtual bool checkWolfHowlDemoMode() const { return mProcID == PROC_WOLF_HOWL_DEMO; }
virtual bool checkChainBlockPushPull();
virtual BOOL checkElecDamage() const { return mProcID == PROC_ELEC_DAMAGE; }
virtual BOOL checkEmptyBottleSwing() const { return mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE && mProcID == PROC_BOTTLE_SWING; }
virtual BOOL checkEmptyBottleSwing() const {
return mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE && mProcID == PROC_BOTTLE_SWING;
}
virtual BOOL checkBottleSwingMode() const { return mProcID == PROC_BOTTLE_SWING; }
virtual BOOL checkHawkWait() const { return mProcID == PROC_HAWK_SUBJECT; }
virtual BOOL checkGoatThrow() const { return mProcID == PROC_GOAT_CATCH && mProcVar2.field_0x300c != 0; }
virtual BOOL checkGoatThrowAfter() const { return mProcID == PROC_GOAT_CATCH && field_0x3478 > 0.0f; }
virtual BOOL checkWolfTagLockJump() const { return mProcID == PROC_WOLF_TAG_JUMP && field_0x3198 == 0; }
virtual BOOL checkGoatThrow() const {
return mProcID == PROC_GOAT_CATCH && mProcVar2.field_0x300c != 0;
}
virtual BOOL checkGoatThrowAfter() const {
return mProcID == PROC_GOAT_CATCH && field_0x3478 > 0.0f;
}
virtual BOOL checkWolfTagLockJump() const {
return mProcID == PROC_WOLF_TAG_JUMP && field_0x3198 == 0;
}
virtual BOOL checkWolfTagLockJumpLand() const { return mProcID == PROC_WOLF_TAG_JUMP_LAND; }
virtual BOOL checkWolfRope();
virtual BOOL checkWolfRopeHang() const { return mProcID == PROC_WOLF_ROPE_HANG; }
@ -3080,13 +3103,24 @@ public:
virtual BOOL checkWolfWait() const { return mProcID == PROC_WOLF_WAIT; }
virtual BOOL checkWolfJumpAttack() const { return mProcID == PROC_WOLF_JUMP_ATTACK; }
virtual BOOL checkWolfRSit() const { return mProcID == PROC_WOLF_SIT; }
virtual BOOL checkBottleDrinkEnd() const { return mProcID == PROC_BOTTLE_DRINK && mProcVar3.field_0x300e != 0; }
virtual BOOL checkBottleDrinkEnd() const {
return mProcID == PROC_BOTTLE_DRINK && mProcVar3.field_0x300e != 0;
}
virtual BOOL checkWolfDig() const { return mProcID == PROC_WOLF_DIG; }
virtual BOOL checkCutCharge() const { return mProcID == PROC_CUT_TURN_MOVE; }
virtual BOOL checkCutTurnCharge() const { return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c == 0; }
virtual BOOL checkCutLargeJumpCharge() const { return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c != 0; }
virtual BOOL checkComboCutTurn() const { return mProcID == PROC_CUT_TURN && mComboCutCount != 0; }
virtual BOOL checkClimbMove() const { return mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_LADDER_MOVE || mProcID == PROC_CLIMB_MOVE_SIDE; }
virtual BOOL checkCutTurnCharge() const {
return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c == 0;
}
virtual BOOL checkCutLargeJumpCharge() const {
return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c != 0;
}
virtual BOOL checkComboCutTurn() const {
return mProcID == PROC_CUT_TURN && mComboCutCount != 0;
}
virtual BOOL checkClimbMove() const {
return mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_LADDER_MOVE ||
mProcID == PROC_CLIMB_MOVE_SIDE;
}
virtual BOOL checkGrassWhistle() const { return mProcID == PROC_GRASS_WHISTLE_WAIT; }
virtual BOOL checkBoarRun() const { return mProcID == PROC_BOAR_RUN; }
virtual f32 getBaseAnimeFrameRate() const { return mUnderFrameCtrl[0].getRate(); }
@ -3118,13 +3152,18 @@ public:
virtual void onFrollCrashFlg(u8, int);
virtual MtxP getModelJointMtx(u16);
virtual MtxP getHeadMtx() {
return mpLinkModel->getAnmMtx(field_0x30b4);;
return mpLinkModel->getAnmMtx(field_0x30b4);
;
}
virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*);
virtual BOOL checkCutJumpCancelTurn() const { return (mProcID == PROC_CUT_JUMP || mProcID == PROC_CUT_JUMP_LAND) && field_0x3198 != 2; }
virtual BOOL checkCutJumpCancelTurn() const {
return (mProcID == PROC_CUT_JUMP || mProcID == PROC_CUT_JUMP_LAND) && field_0x3198 != 2;
}
virtual bool checkIronBallReturn() const;
virtual bool checkIronBallGroundStop() const;
virtual BOOL checkSingleBoarBattleSecondBowReady() const { return mProcID == PROC_HORSE_BOW_SUBJECT && mProcVar2.field_0x300c != 0; }
virtual BOOL checkSingleBoarBattleSecondBowReady() const {
return mProcID == PROC_HORSE_BOW_SUBJECT && mProcVar2.field_0x300c != 0;
}
virtual void setClothesChange(int);
virtual void setPlayerPosAndAngle(cXyz const*, short, int);
virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*);
@ -3132,7 +3171,9 @@ public:
virtual bool setThrowDamage(short, f32, f32, int, int, int);
virtual bool checkSetNpcTks(cXyz*, int, int);
virtual int setRollJump(f32, f32, short);
virtual void playerStartCollisionSE(u32 param_0, u32 param_1) { mZ2Link.startCollisionSE(param_0, param_1); }
virtual void playerStartCollisionSE(u32 param_0, u32 param_1) {
mZ2Link.startCollisionSE(param_0, param_1);
}
virtual void cancelDungeonWarpReadyNeck() {
if (mProcID != PROC_DUNGEON_WARP_READY) {
return;
@ -3166,7 +3207,9 @@ public:
}
return (daSpinner_c*)spinnerActor;
}
virtual BOOL checkHorseRideNotReady() const { return checkHorseRide() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF; }
virtual BOOL checkHorseRideNotReady() const {
return checkHorseRide() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF;
}
virtual bool checkArrowChargeEnd() const;
virtual f32 getSearchBallScale() const { return mSearchBallScale; }
virtual int checkFastShotTime() { return mFastShotTime; }
@ -3183,9 +3226,13 @@ public:
virtual bool checkUseKandelaar(int);
virtual void setDkCaught(fopAc_ac_c*);
virtual void onPressedDamage(cXyz const&, short);
virtual bool checkPriActorOwn(fopAc_ac_c const* p_actor) const { return field_0x27f4 == p_actor; }
virtual bool checkPriActorOwn(fopAc_ac_c const* p_actor) const {
return field_0x27f4 == p_actor;
}
virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2);
virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* p_actor) const { return field_0x281c.getActorConst() == p_actor; }
virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* p_actor) const {
return field_0x281c.getActorConst() == p_actor;
}
virtual void setWolfEnemyHangBiteAngle(short angle) {
if (mProcID != PROC_WOLF_ENEMY_HANG_BITE) {
return;
@ -3199,8 +3246,12 @@ public:
virtual void onSpinnerPathForceRemove();
virtual int getIronBallBgHit() const;
virtual cXyz* getIronBallCenterPos();
virtual bool checkCanoeFishingGetLeft() const { return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 0; }
virtual bool checkCanoeFishingGetRight() const { return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 1; }
virtual bool checkCanoeFishingGetLeft() const {
return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 0;
}
virtual bool checkCanoeFishingGetRight() const {
return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 1;
}
virtual u8 checkBeeChildDrink() const { return field_0x2fd3; }
virtual void skipPortalObjWarp();
virtual BOOL checkTreasureRupeeReturn(int) const;
@ -3243,7 +3294,9 @@ public:
virtual cXyz* getHookshotTopPos();
virtual bool checkHookshotReturnMode() const;
virtual bool checkHookshotShootReturnMode() const;
virtual bool checkOctaIealHang() const { return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc == 0; }
virtual bool checkOctaIealHang() const {
return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc == 0;
}
virtual void cancelOctaIealHang() {
if (mProcID != PROC_BOSS_BODY_HANG) {
return;
@ -3262,12 +3315,16 @@ public:
}
mProcVar0.field_0x3008 = 1;
}
virtual bool checkDragonHangRide() const { return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc != 0; }
virtual bool checkDragonHangRide() const {
return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc != 0;
}
virtual void changeDragonActor(fopAc_ac_c*);
virtual u8 getClothesChangeWaitTimer() const { return mClothesChangeWaitTimer; }
virtual u8 getShieldChangeWaitTimer() const { return mShieldChangeWaitTimer; }
virtual u8 getSwordChangeWaitTimer() const { return mSwordChangeWaitTimer; }
virtual BOOL checkMetamorphose() const { return mProcID == PROC_METAMORPHOSE && mProcVar1.field_0x300a == 0; }
virtual BOOL checkMetamorphose() const {
return mProcID == PROC_METAMORPHOSE && mProcVar1.field_0x300a == 0;
}
virtual BOOL checkWolfDownAttackPullOut() const { return mProcID == PROC_WOLF_DOWN_AT_LAND; }
virtual BOOL checkBootsOrArmorHeavy() const;
virtual s32 getBottleOpenAppearItem() const;
@ -3276,14 +3333,17 @@ public:
virtual BOOL checkSinkDead() const { return field_0x2fbd == 0xFF; }
virtual BOOL checkHorseStart() { return checkHorseStart(getLastSceneMode(), getStartMode()); }
virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return &mZ2WolfHowlMgr; }
virtual BOOL checkWolfHowlSuccessAnime() const { return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS); }
virtual BOOL checkWolfHowlSuccessAnime() const {
return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS);
}
virtual BOOL checkCopyRodTopUse();
virtual bool checkCopyRodEquip() const { return mEquipItem == fpcNm_ITEM_COPY_ROD; }
virtual BOOL checkCutJumpMode() const { return mProcID == PROC_CUT_JUMP; }
static BOOL checkDebugMoveInput() {
if (mDoCPd_c::isConnect(PAD_3)) {
return mDoCPd_c::getHoldB(PAD_1) && mDoCPd_c::getAnalogR(PAD_1) > 0.8f && mDoCPd_c::getTrigA(PAD_1);
return mDoCPd_c::getHoldB(PAD_1) && mDoCPd_c::getAnalogR(PAD_1) > 0.8f &&
mDoCPd_c::getTrigA(PAD_1);
}
return FALSE;
@ -3292,7 +3352,6 @@ public:
u32 checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; }
BOOL checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); }
BOOL checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); }
// this might be a fake match, but helps fix usage in many functions
#pragma push
@ -3319,7 +3378,9 @@ public:
return (mEquipItem == fpcNm_ITEM_BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(0x54);
}
bool checkDkCaught2Anime() const { return checkUpperAnime(0x262); }
BOOL checkCopyRodThrowAnime() const { return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(0x53); }
BOOL checkCopyRodThrowAnime() const {
return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(0x53);
}
BOOL checkCutDashChargeAnime() const { return checkUpperAnime(0x83); }
BOOL checkBoomerangAnimeAndReturnWait() const { return checkBoomerangAnime(); }
BOOL checkTwoHandItemEquipAnime() const { return checkUpperAnime(0x245); }
@ -3334,7 +3395,9 @@ public:
bool checkBowShootAnime() const { return checkUpperAnime(0xC); }
bool checkBowWaitAnime() const { return checkUpperAnime(0xD); }
BOOL checkGrabUpThrowAnime() const { return checkUpperAnime(0x170); }
BOOL checkGrabSideThrowAnime() const { return checkUpperAnime(0x51) || mUpperAnmHeap[0].getIdx() == 0x51; }
BOOL checkGrabSideThrowAnime() const {
return checkUpperAnime(0x51) || mUpperAnmHeap[0].getIdx() == 0x51;
}
BOOL checkGrabHeavyThrowAnime() const { return checkUpperAnime(0x17B); }
BOOL checkGrabAnimeUp() const { return checkUpperAnime(0x16C); }
BOOL checkGrabAnimeSide() const { return checkUpperAnime(0x50); }
@ -3350,8 +3413,12 @@ public:
bool checkIronBallSwingAnime() const { return checkUpperAnime(0x19B); }
bool checkDashDamageAnime() const { return checkUpperAnime(0xAD); }
bool checkBoomerangCatchAnime() const { return checkUpperAnime(0x52); }
BOOL checkCopyRodReadyAnime() const { return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(0x54); }
BOOL checkCanoeFishingWaitAnime() const { return checkUpperAnime(0x5D) || checkUpperAnime(0x260); }
BOOL checkCopyRodReadyAnime() const {
return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(0x54);
}
BOOL checkCanoeFishingWaitAnime() const {
return checkUpperAnime(0x5D) || checkUpperAnime(0x260);
}
BOOL checkCopyRodControllAnime() const { return checkUpperAnime(0x202); }
BOOL checkWolfHeadDamageAnime() const { return checkUpperAnime(0x2A7); }
BOOL checkExchangeRodAnime() const { return checkUpperAnime(0x68); }
@ -3444,7 +3511,9 @@ public:
cXyz* getMidnaHairAtnPos() { return &mMidnaHairAtnPos; }
const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; }
const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { return &m_faceTexDataTable[i_anmID]; }
const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const {
return &m_faceTexDataTable[i_anmID];
}
s16 getCameraAngleX() const { return field_0x310a; }
s16 getCameraAngleY() const { return field_0x310c; }
@ -3466,7 +3535,8 @@ public:
var_r5 = 0;
if (mItemAcKeep.getActor() != NULL &&
mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt() != 0) {
mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt() != 0)
{
var_r5 = 1;
}
@ -3490,10 +3560,8 @@ public:
}
BOOL checkSlideMode() {
return mProcID == PROC_SLIDE ||
mProcID == PROC_SLIDE_LAND ||
mProcID == PROC_WOLF_SLIDE_READY ||
mProcID == PROC_WOLF_SLIDE_LAND ||
return mProcID == PROC_SLIDE || mProcID == PROC_SLIDE_LAND ||
mProcID == PROC_WOLF_SLIDE_READY || mProcID == PROC_WOLF_SLIDE_LAND ||
mProcID == PROC_WOLF_SLIDE;
}
@ -3517,7 +3585,9 @@ public:
f32 getCopyRodBallDisFlyMax() const { return mSearchBallScale; }
void clearIronBallActor() { field_0x173c.SetActor(this); }
BOOL checkCanoeRideOwn(const fopAc_ac_c* param_0) const { return checkCanoeRide() && mRideAcKeep.getActorConst() == param_0; }
BOOL checkCanoeRideOwn(const fopAc_ac_c* param_0) const {
return checkCanoeRide() && mRideAcKeep.getActorConst() == param_0;
}
bool checkWolfDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); }
bool checkWolfLieWaterIn() const { return mWaterY > current.pos.y + 20.5f; }
@ -3545,6 +3615,12 @@ public:
bool checkSpinnerRideWait() const {
return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0;
}
bool checkCopyRodSwingMode() { return mProcID == PROC_COPY_ROD_SWING; }
bool checkCopyRodSwingModeInit() {
return mProcID == PROC_COPY_ROD_SWING && mProcVar2.field_0x300c != 0;
}
float transAnimeMoveX() { return field_0x3464; }
float transAnimeMoveZ() { return field_0x3468; }
bool checkRoofSwitchHang() const { return mProcID == PROC_ROOF_SWITCH_HANG; }
bool checkCanoeWait() const { return mProcID == PROC_CANOE_WAIT; }
bool checkCanoeSubjectivity() const { return mProcID == PROC_CANOE_SUBJECTIVITY; }
@ -3578,9 +3654,7 @@ public:
void clearComboReserb() { offNoResetFlg2(FLG2_UNK_2); }
void setDamageColorTime() {
mDamageColorTime = 32 - (mDamageTimer % 16);
}
void setDamageColorTime() { mDamageColorTime = 32 - (mDamageTimer % 16); }
BOOL setEnemyBomb(fopAc_ac_c* i_actor) { return exchangeGrabActor(i_actor); }
@ -3606,9 +3680,7 @@ public:
return getDirectionFromAngle(field_0x2fe2 - current.angle.y);
}
bool checkAnmEnd(daPy_frameCtrl_c* i_frameCtrl) {
return i_frameCtrl->checkAnmEnd();
}
bool checkAnmEnd(daPy_frameCtrl_c* i_frameCtrl) { return i_frameCtrl->checkAnmEnd(); }
BOOL checkCrawlWaterIn() { return mWaterY > current.pos.y + 15.5f; }
@ -3632,7 +3704,7 @@ public:
bool checkRootTransXClearMode() { return field_0x2f99 & 1; }
bool checkRootTransYClearMode() { return field_0x2f99 & 2; }
bool checkRootTransClearContinueMode() { return field_0x2f99 & 8; }
s16 checkWindStoneHowl() {return mProcVar4.field_0x3010; }
s16 checkWindStoneHowl() { return mProcVar4.field_0x3010; }
u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); }
u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); }
u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); }
@ -3648,7 +3720,9 @@ public:
fopAc_ac_c* getAtnActor() { return mTargetedActor; }
void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); }
void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) {
mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f);
}
BOOL checkStartFall() { return getStartMode() == 3; }
@ -3667,21 +3741,13 @@ public:
mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_pos);
}
cXyz* getLineTopPosP() {
return mSight.getPosP();
}
cXyz* getLineTopPosP() { return mSight.getPosP(); }
cXyz* getBoomerangLockPosP() {
return &mHeldItemRootPos;
}
cXyz* getBoomerangLockPosP() { return &mHeldItemRootPos; }
BOOL boomerangLockTrigger() {
return itemActionTrigger();
}
BOOL boomerangLockTrigger() { return itemActionTrigger(); }
BOOL checkBoomerangLockTrigger() {
return boomerangLockTrigger();
}
BOOL checkBoomerangLockTrigger() { return boomerangLockTrigger(); }
BOOL checkDemoSpinnerKeep() const {
return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 1;
@ -3705,9 +3771,7 @@ public:
inline void startRestartRoomFromOut(int, u32, int);
u16 getReadyItem() {
return dComIfGp_getSelectItem(mSelectItemId);
}
u16 getReadyItem() { return dComIfGp_getSelectItem(mSelectItemId); }
static daAlink_BckData const m_mainBckShield[20];
static daAlink_BckData const m_mainBckSword[5];
@ -3720,7 +3784,6 @@ public:
static Vec const m_handLeftInSidePos;
static Vec const m_handRightInSidePos;
static daAlink_procInitTable m_procInitTable[];
static daAlink_procFunc m_demoInitTable[];
static EffParamProc m_fEffParamProc[];
@ -3780,8 +3843,8 @@ public:
/* 0x00704 */ J3DAnmTextureSRTKey* mpKanteraGlowBtk;
/* 0x00708 */ J3DModel* mHeldItemModel;
/* 0x0070C */ J3DModel* mpHookTipModel; // related to held item
/* 0x00710 */ J3DModel* field_0x0710; // related to held item
/* 0x00714 */ J3DModel* field_0x0714; // related to held item
/* 0x00710 */ J3DModel* field_0x0710; // related to held item
/* 0x00714 */ J3DModel* field_0x0714; // related to held item
/* 0x00718 */ J3DAnmTextureSRTKey* field_0x0718;
/* 0x0071C */ J3DAnmTextureSRTKey* field_0x071c;
/* 0x00720 */ J3DAnmTextureSRTKey* field_0x0720;
@ -4377,7 +4440,7 @@ struct daAlinkHIO_anm_c {
/* 0x08 */ f32 mStartFrame;
/* 0x0C */ f32 mInterpolation;
/* 0x10 */ f32 mCancelFrame;
}; // size: 0x14
}; // size: 0x14
struct daAlinkHIO_basic_c1 {
/* 0x00 */ bool mOneHitKill;
@ -4833,7 +4896,7 @@ public:
/* 0x54 */ s16 mGuardBodyInterpolation;
/* 0x56 */ s16 mSmallGuardLRAngleMax;
/* 0x58 */ s16 mSmallGuardFBAngleMax;
/* 0x5C */ f32 mCrouchGuardAnmSpeed; // Unused
/* 0x5C */ f32 mCrouchGuardAnmSpeed; // Unused
/* 0x60 */ f32 mCrouchGuardInterpolation; // Unused
/* 0x64 */ f32 mGuardSpeedNormal;
/* 0x68 */ f32 mGuardSpeedLarge;

View File

@ -5,10 +5,54 @@
#include "d/d_particle_copoly.h"
#include "f_op/f_op_actor.h"
enum daCstatue_FLG0 {
daCstatue_FLG0_1 = 0x1,
daCstatue_FLG0_2 = 0x2,
daCstatue_FLG0_4 = 0x4,
daCstatue_FLG0_8 = 0x8,
daCstatue_FLG0_10 = 0x10,
daCstatue_FLG0_20 = 0x20,
daCstatue_FLG0_Demo = 0x40,
daCstatue_FLG0_80 = 0x80,
daCstatue_FLG0_100 = 0x100,
daCstatue_FLG0_200 = 0x200,
daCstatue_FLG0_400 = 0x400,
daCstatue_FLG0_800 = 0x800,
daCstatue_FLG0_1000 = 0x1000,
};
enum daCstatue_MoveMode {
daCstatue_MoveMode_0,
daCstatue_MoveMode_1,
daCstatue_MoveMode_2,
daCstatue_MoveMode_3,
};
enum daCstatue_DemoMode {
daCstatue_DemoMode_0,
daCstatue_DemoMode_1,
daCstatue_DemoMode_2,
daCstatue_DemoMode_3,
};
enum daCstatueWarpMode {
daCstatueWarpMode_Active = 0x1,
daCstatueWarpMode_Ground = 0x2,
};
enum daCstatueType {
daCstatueType_Normal,
daCstatueType_Small,
daCstatueType_Normal2,
daCstatueType_BossRight,
daCstatueType_BossLeft,
daCstatueType_N,
};
/**
* @ingroup actors-unsorted
* @class daCstatue_c
* @brief Dominion Rod Statue (small?)
* @brief Dominion Rod Statue
*
* @details
*
@ -16,84 +60,85 @@
class daCstatue_c : public fopAc_ac_c {
public:
/* 806636AC */ void atHitCallback(fopAc_ac_c*);
/* 806636EC */ void createHeap();
/* 80663D28 */ void create();
/* 806636EC */ int createHeap();
/* 80663D28 */ int create();
/* 80664840 */ ~daCstatue_c();
/* 80664AA0 */ void setRoomInfo();
/* 80664B38 */ void setMatrix();
/* 80664C9C */ void posMove();
/* 8066555C */ void setCollision();
/* 80665E14 */ void checkHammerReverse();
/* 80665E14 */ BOOL checkHammerReverse();
/* 80665F80 */ void setDemo();
/* 80666390 */ void setAnime();
/* 80666B80 */ void initBrk(u16);
/* 80666B80 */ int initBrk(u16);
/* 80666BF8 */ void initStopBrkBtk();
/* 80666C38 */ void initStartBrkBtk();
/* 80666DE8 */ void execute();
/* 80667438 */ void draw();
/* 80666DE8 */ int execute();
/* 80667438 */ int draw();
bool checkNormalType() const { return mType == 0; }
bool checkNotSmallType() const { return mType == 1; }
bool checkBossType() const { return mType == 4 || mType == 3; }
bool checkBossAtGroundHit() const { return mBossAtGndHit == 1; }
bool checkNormalType() const { return mType == daCstatueType_Normal; }
bool checkNotSmallType() const { return mType != daCstatueType_Small; }
bool checkBossType() const {
return mType == daCstatueType_BossLeft || mType == daCstatueType_BossRight;
}
cXyz& getBallPos() { return mBallPos; }
void onWarpGround(const cXyz& pos) {
field_0xb14 = pos;
field_0xae1 = 3;
void onWarpGround(const cXyz& pos) {
mWarpTarget = pos;
mWarpMode = daCstatueWarpMode_Active | daCstatueWarpMode_Ground;
}
void warpStart(const cXyz& pos) {
field_0xb14 = pos;
field_0xae1 = 1;
}
void onStateFlg0(int flg) {
mStateFlg0 |= flg;
mWarpTarget = pos;
mWarpMode = daCstatueWarpMode_Active;
}
void onStateFlg0(daCstatue_FLG0 flg) { mStateFlg0 |= flg; }
void offStateFlg0(daCstatue_FLG0 flg) { mStateFlg0 &= ~flg; }
bool checkStateFlg0(daCstatue_FLG0 flg) const { return mStateFlg0 & flg; }
void warpDelete() {
onStateFlg0(1);
field_0xae1 = 1;
onStateFlg0(daCstatue_FLG0_1);
mWarpMode = daCstatueWarpMode_Active;
}
static u8 const m_bckIdxTable[70 + 2 /* padding */];
static u16 const m_bckIdxTable[daCstatueType_N][7];
private:
/* 0x568 */ char* mResName;
/* 0x568 */ const char* mResName;
/* 0x56C */ request_of_phase_process_class mPhaseReq;
/* 0x574 */ J3DModel* field_0x574;
/* 0x578 */ mDoExt_McaMorfSO* field_0x578;
/* 0x57C */ mDoExt_btkAnm field_0x57c;
/* 0x594 */ mDoExt_brkAnm field_0x594;
/* 0x5AC */ dBgS_AcchCir field_0x5ac[4];
/* 0x6AC */ dBgS_StatueAcch field_0x6ac;
/* 0x884 */ dCcD_Stts field_0x884;
/* 0x8C0 */ dCcD_Cyl field_0x8c0;
/* 0x9FC */ dCcD_Cyl* field_0x9fc;
/* 0xA00 */ dCcD_Cps* field_0xa00;
/* 0xA04 */ dCcD_Cps* field_0xa04;
/* 0xA08 */ dCcD_Sph* field_0xa08;
/* 0xA0C */ mDoExt_invisibleModel field_0xa0c;
/* 0xA14 */ Z2Creature field_0xa14;
/* 0xAA4 */ dPaPo_c field_0xaa4;
/* 0xADC */ u8 mReverb;
/* 0x574 */ J3DModel* mModel;
/* 0x578 */ mDoExt_McaMorfSO* mpMorf;
/* 0x57C */ mDoExt_btkAnm mAnim1;
/* 0x594 */ mDoExt_brkAnm mAnim2;
/* 0x5AC */ dBgS_AcchCir mAcchCir[4];
/* 0x6AC */ dBgS_StatueAcch mStatueAcch;
/* 0x884 */ dCcD_Stts mStts;
/* 0x8C0 */ dCcD_Cyl mCyl1;
/* 0x9FC */ dCcD_Cyl* mCyl2;
/* 0xA00 */ dCcD_Cps* mCps1;
/* 0xA04 */ dCcD_Cps* mCps2;
/* 0xA08 */ dCcD_Sph* mSph;
/* 0xA0C */ mDoExt_invisibleModel mInvisible;
/* 0xA14 */ Z2Creature mSound;
/* 0xAA4 */ dPaPo_c mPaPo;
/* 0xADC */ s8 mReverb;
/* 0xADD */ u8 mType;
/* 0xADE */ u8 field_0xade;
/* 0xADF */ u8 field_0xadf;
/* 0xAE0 */ u8 field_0xae0;
/* 0xAE1 */ u8 field_0xae1;
/* 0xAE2 */ u8 field_0xae2;
/* 0xAE3 */ u8 field_0xae3;
/* 0xAE4 */ u8 field_0xae4;
/* 0xADE */ u8 mParam0;
/* 0xADF */ u8 mCurrentAnim;
/* 0xAE0 */ u8 mMoveMode;
/* 0xAE1 */ u8 mWarpMode;
/* 0xAE2 */ u8 mParam1;
/* 0xAE3 */ u8 mDemoMode;
/* 0xAE4 */ u8 mParam2;
/* 0xAE5 */ u8 mBossAtGndHit;
/* 0xAE6 */ u8 field_0xae6[0xAE8 - 0xAE6];
/* 0xAE8 */ s16 field_0xae8;
/* 0xAEA */ s16 field_0xaea;
/* 0xAE6 */ u16 unused;
/* 0xAE8 */ s16 mDemoTimer;
/* 0xAEA */ s16 mTimer1;
/* 0xAEC */ u32 mStateFlg0;
/* 0xAF0 */ u32 field_0xaf0;
/* 0xAF4 */ f32 field_0xaf4;
/* 0xAF8 */ f32 field_0xaf8;
/* 0xAFC */ f32 field_0xafc;
/* 0xB00 */ f32 field_0xb00;
/* 0xB04 */ f32 field_0xb04;
/* 0xB08 */ cXyz field_0xb08;
/* 0xB14 */ cXyz field_0xb14;
/* 0xAF0 */ u32 mShadowKey;
/* 0xAF4 */ cXyz mSomePos;
/* 0xB00 */ f32 mControlDistanceOffset;
/* 0xB04 */ f32 mTargetFrame;
/* 0xB08 */ cXyz mLinkPos;
/* 0xB14 */ cXyz mWarpTarget;
/* 0xB20 */ cXyz mBallPos;
};

View File

@ -257,7 +257,7 @@ public:
SetStatue();
}
/* 806646F8 */ virtual ~dBgS_StatueAcch();
/* 806646F8 */ virtual ~dBgS_StatueAcch() {}
};
class dBgS_BombAcch : public dBgS_Acch {

View File

@ -1,17 +1,17 @@
#ifndef D_COM_D_COM_INF_GAME_H
#define D_COM_D_COM_INF_GAME_H
#include "d/d_cc_s.h"
#include "d/d_attention.h"
#include "d/d_resorce.h"
#include "d/d_vibration.h"
#include "d/d_cc_s.h"
#include "d/d_event.h"
#include "d/d_event_manager.h"
#include "d/d_particle.h"
#include "d/d_resorce.h"
#include "d/d_save.h"
#include "d/d_vibration.h"
#include "f_op/f_op_camera_mng.h"
#include "m_Do/m_Do_controller_pad.h"
#include "global.h"
#include "m_Do/m_Do_controller_pad.h"
class JKRAramArchive;
class dSmplMdl_draw_c;
@ -681,7 +681,9 @@ public:
}
f32 getCameraZoomForcus(int i_no) { return mCameraInfo[i_no].mCameraZoomForcus; }
void setCameraZoomForcus(int i_no, f32 i_focus) { mCameraInfo[i_no].mCameraZoomForcus = i_focus; }
void setCameraZoomForcus(int i_no, f32 i_focus) {
mCameraInfo[i_no].mCameraZoomForcus = i_focus;
}
f32 getCameraZoomScale(int i_no) { return mCameraInfo[i_no].mCameraZoomScale; }
void setCameraZoomScale(int i_no, f32 i_scale) { mCameraInfo[i_no].mCameraZoomScale = i_scale; }
@ -916,7 +918,8 @@ inline BOOL dComIfG_isDebugMode() {
/**
* Attempts to add a new Object Resource Archive (*.arc) into the Resource Control.
* @param i_arcName Name of archive to be added
* @param i_mountDirection The direction to mount the archive. mDoDvd_MOUNT_DIRECTION_HEAD or mDoDvd_MOUNT_DIRECTION_TAIL
* @param i_mountDirection The direction to mount the archive. mDoDvd_MOUNT_DIRECTION_HEAD or
* mDoDvd_MOUNT_DIRECTION_TAIL
* @param i_heap Pointer to heap to load resources into
* @return TRUE if successful, FALSE otherwise
*/
@ -1397,6 +1400,10 @@ inline void dComIfGs_onTbox(int i_no) {
g_dComIfG_gameInfo.info.getMemory().getBit().onTbox(i_no);
}
inline void dComIfGs_offTbox(int i_no) {
g_dComIfG_gameInfo.info.getMemory().getBit().offTbox(i_no);
}
inline BOOL dComIfGs_isSaveItem(int i_no) {
return g_dComIfG_gameInfo.info.getMemory().getBit().isItem(i_no);
}
@ -1641,7 +1648,8 @@ inline s8 dComIfGs_getHorseRestartRoomNo() {
return g_dComIfG_gameInfo.info.getPlayer().getHorsePlace().getRoomNo();
}
inline void dComIfGs_setHorseRestart(const char* i_stageName, cXyz& i_pos, s16 i_angle, s8 i_roomNo) {
inline void dComIfGs_setHorseRestart(const char* i_stageName, cXyz& i_pos, s16 i_angle,
s8 i_roomNo) {
g_dComIfG_gameInfo.info.getPlayer().getHorsePlace().set(i_stageName, i_pos, i_angle, i_roomNo);
}
@ -2176,8 +2184,8 @@ inline void dComIfGp_att_LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist,
inline void dComIfGp_att_CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist,
f32 i_upDist, f32 i_downDist, s16 i_angle, int param_5) {
dComIfGp_getAttention().CatchRequest(param_0, param_1, i_horizontalDist, i_upDist,
i_downDist, i_angle, param_5);
dComIfGp_getAttention().CatchRequest(param_0, param_1, i_horizontalDist, i_upDist, i_downDist,
i_angle, param_5);
}
inline fopAc_ac_c* dComIfGp_att_getLookTarget() {
@ -2873,11 +2881,13 @@ inline u32 dComIfGp_getCameraAttentionStatus(int i_no) {
return g_dComIfG_gameInfo.play.getCameraAttentionStatus(i_no);
}
inline void dComIfGp_saveCameraPosition(int i, cXyz* i_pos, cXyz* i_target, f32 i_fovy, s16 i_bank) {
inline void dComIfGp_saveCameraPosition(int i, cXyz* i_pos, cXyz* i_target, f32 i_fovy,
s16 i_bank) {
g_dComIfG_gameInfo.play.saveCameraPosition(i, i_pos, i_target, i_fovy, i_bank);
}
inline void dComIfGp_loadCameraPosition(int i, cXyz* o_pos, cXyz* o_target, f32* o_fovy, s16* o_bank) {
inline void dComIfGp_loadCameraPosition(int i, cXyz* o_pos, cXyz* o_target, f32* o_fovy,
s16* o_bank) {
g_dComIfG_gameInfo.play.loadCameraPosition(i, o_pos, o_target, o_fovy, o_bank);
}
@ -3049,8 +3059,9 @@ inline void dComIfGp_setMesgBgmOff() {
g_dComIfG_gameInfo.play.setMesgBgm(0);
}
inline bool dComIfGp_checkMesgBgm() {
return g_dComIfG_gameInfo.play.checkMesgBgm(); }
inline bool dComIfGp_checkMesgBgm() {
return g_dComIfG_gameInfo.play.checkMesgBgm();
}
inline void dComIfGp_setMessageCountNumber(u32 number) {
g_dComIfG_gameInfo.play.setMessageCountNumber(number);
@ -3246,11 +3257,10 @@ inline void dComIfGp_drawSimpleModel() {
g_dComIfG_gameInfo.play.drawSimpleModel();
}
inline void dComIfGp_entrySimpleModel(J3DModel *model,int roomNo) {
inline void dComIfGp_entrySimpleModel(J3DModel* model, int roomNo) {
g_dComIfG_gameInfo.play.entrySimpleModel(model, roomNo);
}
inline dStage_Multi_c* dComIfGp_getMulti() {
return g_dComIfG_gameInfo.play.getStage().getMulti();
}
@ -3288,7 +3298,7 @@ inline void dComIfGp_deleteSimpleModel() {
}
inline void dComIfGp_setHitMark(u16 i_hitmark, fopAc_ac_c* param_1, const cXyz* param_2,
const csXyz* param_3, const cXyz* param_4, u32 i_atType) {
const csXyz* param_3, const cXyz* param_4, u32 i_atType) {
g_dComIfG_gameInfo.play.getParticle()->setHitMark(i_hitmark, param_1, param_2, param_3, param_4,
i_atType);
}
@ -3321,7 +3331,7 @@ inline void dComIfGp_setMesgCameraInfoActor(fopAc_ac_c* param_1, fopAc_ac_c* par
}
inline void dComIfGp_setMesgCameraAttrInfo(int param_1) {
g_dComIfG_gameInfo.play.setMesgCamInfoBasicID(param_1);
g_dComIfG_gameInfo.play.setMesgCamInfoBasicID(param_1);
}
inline dComIfG_MesgCamInfo_c* dComIfGp_getMesgCameraInfo() {
@ -3482,7 +3492,6 @@ inline void dComIfGp_event_offHindFlag(u16 i_flag) {
g_dComIfG_gameInfo.play.getEvent().offHindFlag(i_flag);
}
inline void dComIfGp_evmng_cutEnd(int param_0) {
dComIfGp_getPEvtManager()->cutEnd(param_0);
}
@ -3977,13 +3986,13 @@ inline u32 dComIfGp_particle_setPolyColor(u32 param_0, u16 param_1, cBgS_PolyInf
}
inline JPABaseEmitter* dComIfGp_particle_setPolyColor(u16 param_1, cBgS_PolyInfo& param_2,
const cXyz* param_3, const dKy_tevstr_c* param_4,
const csXyz* param_5, const cXyz* param_6, int param_7,
dPa_levelEcallBack* param_8, s8 param_9,
const cXyz* param_10) {
return g_dComIfG_gameInfo.play.getParticle()->setPoly(param_1, param_2, param_3,
param_4, param_5, param_6, param_7,
param_8, param_9, param_10);
const cXyz* param_3,
const dKy_tevstr_c* param_4,
const csXyz* param_5, const cXyz* param_6,
int param_7, dPa_levelEcallBack* param_8,
s8 param_9, const cXyz* param_10) {
return g_dComIfG_gameInfo.play.getParticle()->setPoly(
param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10);
}
int dComIfGd_setSimpleShadow(cXyz* pos, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, s16 angle,
@ -4294,11 +4303,11 @@ inline void dComIfGd_imageDrawShadow(Mtx param_0) {
g_dComIfG_gameInfo.drawlist.imageDrawShadow(param_0);
}
inline void dComIfGd_set3DlineMat(mDoExt_3DlineMat_c *param_0) {
inline void dComIfGd_set3DlineMat(mDoExt_3DlineMat_c* param_0) {
g_dComIfG_gameInfo.drawlist.set3DlineMat(param_0);
}
inline void dComIfGd_set3DlineMatDark(mDoExt_3DlineMat_c *param_0) {
inline void dComIfGd_set3DlineMatDark(mDoExt_3DlineMat_c* param_0) {
g_dComIfG_gameInfo.drawlist.set3DlineMatDark(param_0);
}

View File

@ -82,6 +82,10 @@ public:
setPosition(i_tboxNo, 12, i_pos, param_2);
}
static void setIconPositionOfCstatue(int i_tboxNo, const Vec* i_pos) {
setPosition(i_tboxNo, 15, i_pos, -1);
}
static void setCarryIron(int i_tboxNo, const Vec* i_pos) {
setPosition(i_tboxNo, 11, i_pos, -1);
}

View File

@ -33,8 +33,7 @@
const fpc_ProcID procID = fopAcM_GetID(i_this); \
"Create -> " actor_name_str "(id=%d)\n"
#define fopAcM_RegisterDelete(i_this, actor_name_str) \
"Delete -> " actor_name_str "\n"
#define fopAcM_RegisterDelete(i_this, actor_name_str) "Delete -> " actor_name_str "\n"
#define fopAcM_RegisterCreate(actor_class, i_this, actor_name_str) \
static_cast<actor_class*>(i_this); \
@ -380,7 +379,8 @@ inline int fopAcM_GetCullSize(const fopAc_ac_c* i_actor) {
}
inline BOOL fopAcM_CULLSIZE_IS_BOX(int i_culltype) {
return (i_culltype >= 0 && i_culltype < fopAc_CULLBOX_CUSTOM_e) || i_culltype == fopAc_CULLBOX_CUSTOM_e;
return (i_culltype >= 0 && i_culltype < fopAc_CULLBOX_CUSTOM_e) ||
i_culltype == fopAc_CULLBOX_CUSTOM_e;
}
inline const cXyz& fopAcM_getCullSizeSphereCenter(const fopAc_ac_c* i_actor) {
@ -602,8 +602,7 @@ fpc_ProcID fopAcM_createItemFromTable(cXyz const* i_pos, int i_tableNo, int i_it
bool i_createDirect);
fpc_ProcID fopAcM_createDemoItem(const cXyz* i_pos, int i_itemNo, int i_itemBitNo,
const csXyz* i_angle, int i_roomNo, const cXyz* scale,
u8 param_7);
const csXyz* i_angle, int i_roomNo, const cXyz* scale, u8 param_7);
fpc_ProcID fopAcM_createItemForBoss(const cXyz* i_pos, int i_itemNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, f32 i_speedF,
@ -767,21 +766,23 @@ inline void fopAcM_effSmokeSet2(u32* param_0, u32* param_1, cXyz const* param_2,
fopAcM_effSmokeSet1(param_0, param_1, param_2, param_3, param_4, param_5, 0);
}
inline void fopAcM_setWarningMessage_f(const fopAc_ac_c* i_actor, const char* i_filename, int i_line, const char* i_msg, ...) {
inline void fopAcM_setWarningMessage_f(const fopAc_ac_c* i_actor, const char* i_filename,
int i_line, const char* i_msg, ...) {
#ifdef DEBUG
/* va_list args;
va_start(args, i_msg);
char buf[64];
snprintf(buf, sizeof(buf), "<%s> %s", dStage_getName(fopAcM_GetProfName(i_actor), i_actor->subtype), i_msg);
setWarningMessage_f_va(JUTAssertion::getSDevice(), i_filename, i_line, buf, args);
snprintf(buf, sizeof(buf), "<%s> %s", dStage_getName(fopAcM_GetProfName(i_actor),
i_actor->subtype), i_msg); setWarningMessage_f_va(JUTAssertion::getSDevice(), i_filename,
i_line, buf, args);
va_end(args); */
#endif
}
#ifdef DEBUG
#define fopAcM_setWarningMessage(i_actor, i_filename, i_line, i_msg) \
#define fopAcM_setWarningMessage(i_actor, i_filename, i_line, i_msg) \
fopAcM_setWarningMessage_f(i_actor, i_filename, i_line, i_msg)
#else
#define fopAcM_setWarningMessage(...)
@ -798,6 +799,7 @@ public:
static cXyz* getCrossP() { return mLineCheck.GetCrossP(); }
static bool lineCheck(const cXyz*, const cXyz*, const fopAc_ac_c*);
static bool getTriPla(cM3dGPla* o_tri) { return dComIfG_Bgsp().GetTriPla(mLineCheck, o_tri); }
static s32 getWallCode() { return dComIfG_Bgsp().GetWallCode(mLineCheck); }
static bool checkWallHit() {
cM3dGPla poly;
getTriPla(&poly);

View File

@ -74,7 +74,8 @@ BOOL daAlink_c::checkForestOldCentury() {
/* 800E145C-800E1530 0DBD9C 00D4+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daAlink_cFv */
BOOL daAlink_c::checkCopyRodTopUse() {
// Event flag 0x2580: Dominion Rod power restored
return (dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e != 0)) ||
return (dComIfGs_isEventBit(0x2580) &&
!(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e != 0)) ||
dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 ||
checkForestOldCentury();
}
@ -252,7 +253,8 @@ void daAlink_c::checkUpperItemActionCopyRodFly() {
int daAlink_c::checkNextActionCopyRod() {
if ((checkBoomerangCatchAnime() &&
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
checkNoResetFlg1(FLG1_UNK_10000)) {
checkNoResetFlg1(FLG1_UNK_10000))
{
return 0;
}
@ -382,7 +384,10 @@ int daAlink_c::procCopyRodSwingInit() {
commonProcInit(PROC_COPY_ROD_SWING);
daCstatue_c* statue = (daCstatue_c*)getCopyRodControllActor();
if (statue != NULL && ((fopAcM_GetName(statue) == PROC_CSTATUE && !statue->checkNotSmallType()) || fopAcM_GetName(statue) != PROC_CSTATUE)) {
if (statue != NULL &&
((fopAcM_GetName(statue) == PROC_CSTATUE && statue->checkNotSmallType()) ||
fopAcM_GetName(statue) != PROC_CSTATUE))
{
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &daAlinkHIO_copyRod_c0::m.mBigSwingAnm);
field_0x3478 = 13.0f;
field_0x347c = 21.0f;

File diff suppressed because it is too large Load Diff