mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 06:54:28 -04:00
obj_Iceleaf almost done / d_a_alink work (#2217)
* obj_iceleaf almost done * fix up d_a_alink procvars * more d_a_alink work * some d_a_alink error cleanup * some more cleanup
This commit is contained in:
@@ -1,2 +1,12 @@
|
||||
CompileFlags:
|
||||
Add: [-Wno-c++11-compat-deprecated-writable-strings, -Wno-extern-initializer]
|
||||
---
|
||||
If:
|
||||
PathMatch: .*/*.inc
|
||||
Diagnostics:
|
||||
Suppress:
|
||||
- "undeclared_var_use"
|
||||
- "undeclared_var_use_suggest"
|
||||
- "bound_member_function"
|
||||
- "typecheck_subscript_value"
|
||||
- "unknown_typename"
|
||||
|
||||
Vendored
+16
-3
@@ -11,13 +11,26 @@
|
||||
"editor.defaultFormatter": "ms-python.black-formatter"
|
||||
},
|
||||
"editor.tabSize": 4,
|
||||
"files.autoSave": "onFocusChange",
|
||||
// "files.autoSave": "onFocusChange",
|
||||
"files.insertFinalNewline": true,
|
||||
"files.trimFinalNewlines": true,
|
||||
"files.associations": {
|
||||
"*.inc": "c",
|
||||
".clangd": "yaml"
|
||||
"*.inc": "cpp",
|
||||
".clangd": "yaml",
|
||||
},
|
||||
// Disable C/C++ IntelliSense, use clangd instead
|
||||
"C_Cpp.intelliSenseEngine": "disabled",
|
||||
"search.useIgnoreFiles": false,
|
||||
"search.exclude": {
|
||||
"build/*/config.json": true,
|
||||
"build/**/*.MAP": true,
|
||||
"build.ninja": true,
|
||||
".ninja_*": true,
|
||||
"objdiff.json": true,
|
||||
".cache/**": true,
|
||||
},
|
||||
"clangd.arguments": [
|
||||
"--function-arg-placeholders=0",
|
||||
"-header-insertion=never",
|
||||
],
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ public:
|
||||
void setYounger(J3DJoint* pYounger) { mYounger = pYounger; }
|
||||
void setCurrentMtxCalc(J3DMtxCalc* pMtxCalc) { mCurrentMtxCalc = pMtxCalc; }
|
||||
J3DTransformInfo& getTransformInfo() { return mTransformInfo; }
|
||||
void setTransformInfo(J3DTransformInfo& i_info) { mTransformInfo = i_info; }
|
||||
Vec* getMax() { return &mMax; }
|
||||
Vec* getMin() { return &mMin; }
|
||||
void setCallBack(J3DJointCallBack callback) { mCallBack = callback; }
|
||||
|
||||
@@ -15,11 +15,36 @@ struct J3DTransformInfo {
|
||||
/* 0x00 */ Vec mScale;
|
||||
/* 0x0C */ SVec mRotation;
|
||||
/* 0x14 */ Vec mTranslate;
|
||||
inline J3DTransformInfo& operator=(const J3DTransformInfo& b) {
|
||||
|
||||
/* inline J3DTransformInfo& operator=(const J3DTransformInfo& b) {
|
||||
mScale = b.mScale;
|
||||
mRotation = b.mRotation;
|
||||
mTranslate = b.mTranslate;
|
||||
return *this;
|
||||
} */
|
||||
|
||||
inline J3DTransformInfo& operator=(const register J3DTransformInfo& b) {
|
||||
register const J3DTransformInfo& var_r31 = b;
|
||||
register J3DTransformInfo& var_r30 = *this;
|
||||
|
||||
register f32 var_f31;
|
||||
register f32 var_f0;
|
||||
register int var_r0;
|
||||
asm {
|
||||
psq_l var_f31, 0x0(var_r31), 0, 0
|
||||
psq_st var_f31, 0x0(var_r30), 0, 0
|
||||
lfs var_f0, 0x8(var_r31)
|
||||
stfs var_f0, 0x8(var_r30)
|
||||
lwz var_r0, 0xc(var_r31)
|
||||
stw var_r0, 0xc(var_r30)
|
||||
lha var_r0, 0x10(var_r31)
|
||||
sth var_r0, 0x10(var_r30)
|
||||
psq_l var_f31, 0x14(var_r31), 0, 0
|
||||
psq_st var_f31, 0x14(var_r30), 0, 0
|
||||
lfs var_f0, 0x1c(var_r31)
|
||||
stfs var_f0, 0x1c(var_r30)
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
}; // Size: 0x20
|
||||
|
||||
|
||||
@@ -2,18 +2,17 @@
|
||||
#define D_A_D_A_ALINK_H
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
#include "Z2AudioLib/Z2WolfHowlMgr.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_eye_hl.h"
|
||||
#include "d/d_jnt_col.h"
|
||||
#include "d/d_meter2_info.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_kytag05.h"
|
||||
#include "d/actor/d_a_tag_mmsg.h"
|
||||
|
||||
class J2DAnmColorKey;
|
||||
@@ -157,6 +156,12 @@ public:
|
||||
/* 0x104 */ int mSetFlag;
|
||||
};
|
||||
|
||||
// this class is mostly a complete guess
|
||||
class daAlink_hsChainLight_c : public dKy_tevstr_c {
|
||||
public:
|
||||
GXLightObj* getLightObj() { return &mLightObj.mLightObj; }
|
||||
};
|
||||
|
||||
struct daAlink_BckData {
|
||||
/* 0x0 */ u16 m_underID;
|
||||
/* 0x2 */ u16 m_upperID;
|
||||
@@ -1704,7 +1709,7 @@ public:
|
||||
/* 800D1788 */ static BOOL notSwordHitVibActor(fopAc_ac_c*);
|
||||
/* 800D17EC */ BOOL setSwordHitVibration(dCcD_GObjInf*);
|
||||
/* 800D1920 */ BOOL checkAtShieldHit(dCcD_GObjInf&);
|
||||
/* 800D1978 */ bool checkCutReverseAt(dCcD_GObjInf*);
|
||||
/* 800D1978 */ BOOL checkCutReverseAt(dCcD_GObjInf*);
|
||||
/* 800D19C8 */ BOOL changeCutReverseProc(daAlink_c::daAlink_ANM);
|
||||
/* 800D1E1C */ void setCutDash(int, int);
|
||||
/* 800D20B4 */ BOOL checkForceSwordSwing();
|
||||
@@ -2492,7 +2497,7 @@ public:
|
||||
/* 8011078C */ BOOL checkWaterInKandelaarOffset(f32);
|
||||
/* 801107BC */ void checkWaterInKandelaar(f32);
|
||||
/* 80110840 */ void offKandelaarModel();
|
||||
/* 801108EC */ void kandelaarModelCallBack();
|
||||
/* 801108EC */ int kandelaarModelCallBack();
|
||||
/* 80110C6C */ BOOL checkKandelaarEquipAnime() const;
|
||||
/* 80110C94 */ void preKandelaarDraw();
|
||||
/* 80110E84 */ void setKandelaarModel();
|
||||
@@ -3173,7 +3178,7 @@ public:
|
||||
BOOL checkBarkAnime() const { return 0; }
|
||||
bool checkWolfGrabAnimeObj() const { return checkUpperAnime(0x2DA); }
|
||||
bool checkWolfGrabAnimeStick() const { return checkUpperAnime(0x2DB); }
|
||||
bool checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); }
|
||||
BOOL checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); }
|
||||
bool checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); }
|
||||
bool checkKandelaarSwingAnime() const { return false; }
|
||||
bool checkBowChargeWaitAnime() const { return checkUpperAnime(0xA); }
|
||||
@@ -3386,6 +3391,11 @@ public:
|
||||
}
|
||||
|
||||
const cXyz& getHsChainTopPos() const { return mHookshotTopPos; }
|
||||
const cXyz& getHsChainRootPos() const { return mHeldItemRootPos; }
|
||||
|
||||
const cXyz& getHsSubChainRootPos() const { return field_0x3810; }
|
||||
|
||||
s16 getHookshotStopTime() const { return field_0x3026; }
|
||||
|
||||
static int getBallModelIdx() { return 0x25; }
|
||||
static int getBallBtkIdx() { return 0x49; }
|
||||
@@ -3395,12 +3405,18 @@ public:
|
||||
bool checkRootTransZClearMode() { return field_0x2f99 & 4; }
|
||||
bool checkRootTransXClearMode() { return field_0x2f99 & 1; }
|
||||
bool checkRootTransYClearMode() { return field_0x2f99 & 2; }
|
||||
s16 checkWindStoneHowl() {return mProcVar3.field_0x300e.y; }
|
||||
s16 checkWindStoneHowl() {return mProcVar4.field_0x3010; }
|
||||
u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); }
|
||||
u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); }
|
||||
u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); }
|
||||
s8 getOnLineNum() { return mZ2WolfHowlMgr.getOnLineNum(); }
|
||||
SongNote getCorrectLine(u8 param_0) { return mZ2WolfHowlMgr.getCorrectLine(param_0); }
|
||||
J3DModelData* getItemModelData() { return mpItemModelData; }
|
||||
|
||||
cXyz* getIronBallChainPos() const { return mIronBallChainPos; }
|
||||
csXyz* getIronBallChainAngle() const { return mIronBallChainAngle; }
|
||||
int getIronBallHandChainNum() const { return mItemMode; }
|
||||
const cXyz& getIronBallChainHandRootPos() const { return mHookshotTopPos; }
|
||||
|
||||
void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); }
|
||||
|
||||
@@ -3494,7 +3510,7 @@ public:
|
||||
/* 0x0072C */ J3DAnmTexPattern* field_0x072c;
|
||||
/* 0x00730 */ mDoExt_bckAnm mItemBck;
|
||||
/* 0x0074C */ mDoExt_bckAnm mHookTipBck;
|
||||
/* 0x00768 */ J3DModelData* mpHookKusariModelData;
|
||||
/* 0x00768 */ J3DModelData* mpItemModelData;
|
||||
/* 0x0076C */ Z2SoundObjSimple* mpHookSound;
|
||||
/* 0x00770 */ hsChainShape_c* mpHookChain;
|
||||
/* 0x00774 */ dBgS_AcchCir* field_0x0774;
|
||||
@@ -3652,7 +3668,7 @@ public:
|
||||
/* 0x02FA5 */ u8 mPolySound;
|
||||
/* 0x02FA6 */ u8 field_0x2fa6;
|
||||
/* 0x02FA7 */ u8 field_0x2fa7;
|
||||
/* 0x02FA8 */ u8 field_0x2fa8;
|
||||
/* 0x02FA8 */ u8 mGndPolySpecialCode;
|
||||
/* 0x02FA9 */ u8 mWolfEyeUpTimer;
|
||||
/* 0x02FAA */ u8 mRideStatus;
|
||||
/* 0x02FAB */ u8 field_0x2fab;
|
||||
@@ -3733,14 +3749,21 @@ public:
|
||||
} /* 0x03008 */ mProcVar0;
|
||||
union {
|
||||
s16 field_0x300a;
|
||||
s16 mBoardSwordChargeTime;
|
||||
} /* 0x0300A */ mProcVar1;
|
||||
union {
|
||||
s16 field_0x300c;
|
||||
s16 mPuzzleAimAngle;
|
||||
} /* 0x0300C */ mProcVar2;
|
||||
union {
|
||||
SVec field_0x300e;
|
||||
s16 field_0x300e;
|
||||
} /* 0x0300E */ mProcVar3;
|
||||
union {
|
||||
s16 field_0x3010;
|
||||
} /* 0x03010 */ mProcVar4;
|
||||
union {
|
||||
s16 field_0x3012;
|
||||
} /* 0x03012 */ mProcVar5;
|
||||
/* 0x03014 */ s16 mFallVoiceInit;
|
||||
/* 0x03016 */ u8 field_0x3016[2];
|
||||
union {
|
||||
@@ -4049,6 +4072,16 @@ static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor);
|
||||
static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor);
|
||||
static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* param_0, void* param_1);
|
||||
|
||||
struct daAlink_cutParamTbl {
|
||||
/* 0x0 */ daAlink_c::daAlink_ANM m_anmID;
|
||||
/* 0x4 */ int field_0x4;
|
||||
/* 0x8 */ u8 m_cutType;
|
||||
/* 0x9 */ u8 m_atSe;
|
||||
/* 0xA */ u8 field_0xa;
|
||||
/* 0xB */ u8 field_0xb;
|
||||
/* 0xC */ f32 m_morf;
|
||||
}; // Size: 0x10
|
||||
|
||||
struct daAlinkHIO_anm_c {
|
||||
/* 0x00 */ s16 mEndFrame;
|
||||
/* 0x04 */ f32 mSpeed;
|
||||
|
||||
@@ -47,6 +47,8 @@ public:
|
||||
u8 getSW_0() { return fopAcM_GetParamBit(this, 4, 8); }
|
||||
s32 getArg_0() { return fopAcM_GetParamBit(this, 0, 4); }
|
||||
|
||||
void moveHookOn() { field_0x60a = 1; }
|
||||
|
||||
private:
|
||||
/* 0x5A8 */ cXyz field_0x5a8;
|
||||
/* 0x5B4 */ Mtx mMtx;
|
||||
|
||||
@@ -15,13 +15,27 @@
|
||||
*/
|
||||
class daObjIceLeaf_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum daObjIceLeaf_MODE {
|
||||
MODE_DROP_WAIT_e,
|
||||
MODE_DROP_e,
|
||||
MODE_PLAYER_WAIT_e,
|
||||
MODE_RIDE_e,
|
||||
};
|
||||
|
||||
enum daObjIceLeaf_ACTION {
|
||||
ACT_WAIT_e,
|
||||
ACT_ORDER_EVENT_e,
|
||||
ACT_EVENT_e,
|
||||
ACT_DEAD_e,
|
||||
};
|
||||
|
||||
/* 80C24738 */ void initBaseMtx();
|
||||
/* 80C24774 */ void setBaseMtx();
|
||||
/* 80C249E4 */ void Create();
|
||||
/* 80C249E4 */ int Create();
|
||||
/* 80C24BC4 */ void setAnmPos();
|
||||
/* 80C24C9C */ void CreateHeap();
|
||||
/* 80C24E14 */ void create();
|
||||
/* 80C25158 */ void execute();
|
||||
/* 80C24C9C */ int CreateHeap();
|
||||
/* 80C24E14 */ int create();
|
||||
/* 80C25158 */ int execute();
|
||||
/* 80C25360 */ void action();
|
||||
/* 80C2541C */ void modeDropWait();
|
||||
/* 80C25614 */ void modeDrop();
|
||||
@@ -33,13 +47,19 @@ public:
|
||||
/* 80C25A68 */ void actionEvent();
|
||||
/* 80C25AC4 */ void actionDead();
|
||||
/* 80C25AC8 */ void setFallSE();
|
||||
/* 80C25BB8 */ void draw();
|
||||
/* 80C25C50 */ void _delete();
|
||||
/* 80C25BB8 */ int draw();
|
||||
/* 80C25C50 */ int _delete();
|
||||
|
||||
void offRide() { mRide = false; }
|
||||
void onRide() { mRide = true; }
|
||||
void setBreakEffect() { mBreakEffect = true; }
|
||||
void deleteActor() { field_0x961 = 1; }
|
||||
void deleteActor() { mDeleteActor = true; }
|
||||
void setAction(u8 i_action) { mAction = i_action; }
|
||||
void setMode(u8 i_mode) { mMode = i_mode; }
|
||||
|
||||
u8 getEvId() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 checkRideStatus() { return fopAcM_GetParamBit(this, 0x10, 8); }
|
||||
u8 getSwbit() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
@@ -49,18 +69,18 @@ private:
|
||||
/* 0x78C */ dCcD_Stts mStts;
|
||||
/* 0x7C8 */ dCcD_Cyl mCyl;
|
||||
/* 0x904 */ mDoExt_bckAnm* mpBck;
|
||||
/* 0x908 */ J3DTransformInfo field_0x908;
|
||||
/* 0x928 */ u8 mAction;
|
||||
/* 0x929 */ u8 field_0x929;
|
||||
/* 0x92A */ u8 field_0x92a;
|
||||
/* 0x908 */ J3DTransformInfo mTransformInfo;
|
||||
/* 0x928 */ u8 mMode;
|
||||
/* 0x929 */ u8 mAction;
|
||||
/* 0x92A */ u8 mEvId;
|
||||
/* 0x92B */ u8 field_0x92b;
|
||||
/* 0x92C */ s16 mEventID;
|
||||
/* 0x930 */ Mtx field_0x930;
|
||||
/* 0x930 */ Mtx mMtx;
|
||||
/* 0x960 */ u8 mRide;
|
||||
/* 0x961 */ u8 field_0x961;
|
||||
/* 0x961 */ u8 mDeleteActor;
|
||||
/* 0x962 */ u8 mBreakEffect;
|
||||
/* 0x964 */ cXyz field_0x964;
|
||||
/* 0x970 */ cXyz field_0x970;
|
||||
/* 0x964 */ cXyz mFallSEPos;
|
||||
/* 0x970 */ cXyz mFallStartSEPos;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjIceLeaf_c) == 0x97c);
|
||||
|
||||
@@ -784,6 +784,7 @@ public:
|
||||
bool checkSwimUp() const { return checkNoResetFlg0(FLG0_SWIM_UP); }
|
||||
BOOL checkHorseZelda() const { return checkNoResetFlg2(FLG2_HORSE_ZELDA); }
|
||||
BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_UNK_1000000 | FLG2_UNK_800000)); }
|
||||
BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_UNK_40); }
|
||||
|
||||
void onBossRoomWait() { onEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT); }
|
||||
void onBeeFollow() { onEndResetFlg0(ERFLG0_BEE_FOLLOW); }
|
||||
|
||||
@@ -16,6 +16,13 @@ class dBgS_SphChk;
|
||||
class dBgS_SplGrpChk;
|
||||
class fopAc_ac_c;
|
||||
|
||||
enum dBgW_SpecialCode {
|
||||
dBgW_SPCODE_NORMAL,
|
||||
dBgW_SPCODE_LIGHT_SNOW = 5,
|
||||
dBgW_SPCODE_HEAVY_SNOW = 6,
|
||||
dBgW_SPCODE_ICE = 8,
|
||||
};
|
||||
|
||||
class dBgW_Base : public cBgW_BgId {
|
||||
public:
|
||||
enum PushPullLabel {
|
||||
|
||||
+2
-2
@@ -116,7 +116,7 @@ public:
|
||||
dDemo_system_c() { mpObject = NULL; }
|
||||
|
||||
/* 80039AAC */ virtual ~dDemo_system_c();
|
||||
/* 80039528 */ virtual bool JSGFindObject(JStage::TObject**, char const*,
|
||||
/* 80039528 */ virtual int JSGFindObject(JStage::TObject**, char const*,
|
||||
JStage::TEObject) const;
|
||||
|
||||
void setObject(dDemo_object_c* i_object) { mpObject = i_object; }
|
||||
@@ -131,7 +131,7 @@ public:
|
||||
: JStudio_JParticle::TCreateObject(p_emitMgr, p_system) {}
|
||||
|
||||
/* 80039F9C */ virtual ~dDemo_particle_c();
|
||||
/* 80039F1C */ virtual void emitter_create(u32);
|
||||
/* 80039F1C */ virtual JPABaseEmitter* emitter_create(u32);
|
||||
};
|
||||
|
||||
class dDemo_light_c : public JStage::TLight {
|
||||
|
||||
@@ -9,7 +9,7 @@ typedef struct Vec Vec;
|
||||
struct ResTIMG;
|
||||
|
||||
struct mDoLib_clipper {
|
||||
/* 8001528C */ void setup(f32, f32, f32, f32);
|
||||
/* 8001528C */ static void setup(f32, f32, f32, f32);
|
||||
|
||||
static void changeFar(f32 far) {
|
||||
mClipper.setFar(far);
|
||||
@@ -32,8 +32,6 @@ struct mDoLib_clipper {
|
||||
mClipper.calcViewFrustum();
|
||||
}
|
||||
|
||||
static void setup(f32, f32, f32, f32);
|
||||
|
||||
static J3DUClipper mClipper;
|
||||
static f32 mSystemFar;
|
||||
static f32 mFovyRate;
|
||||
|
||||
+20
-3620
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,5 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
|
||||
// clang-format off
|
||||
/* 8038D664-8038D6BC 019CC4 0058+00 41/50 0/0 0/0 .rodata m__19daAlinkHIO_basic_c0 */
|
||||
const daAlinkHIO_basic_c1 daAlinkHIO_basic_c0::m = {
|
||||
@@ -2036,8 +2038,6 @@ const daAlinkHIO_copyRod_c1 daAlinkHIO_copyRod_c0::m = {
|
||||
};
|
||||
|
||||
/* 8038EB34-8038EB50 01B194 001C+00 0/0 0/0 0/0 .rodata m__21daAlinkHIO_zwLight_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_zwLight_c1 daAlinkHIO_zwLight_c0::m = {
|
||||
771,
|
||||
0,
|
||||
@@ -2050,9 +2050,6 @@ const daAlinkHIO_zwLight_c1 daAlinkHIO_zwLight_c0::m = {
|
||||
131.83594f,
|
||||
0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038EB34,
|
||||
&daAlinkHIO_zwLight_c0::m);
|
||||
#pragma pop
|
||||
|
||||
/* 8038EB50-8038EB8C 01B1B0 003C+00 3/3 0/0 0/0 .rodata m__18daAlinkHIO_item_c0 */
|
||||
const daAlinkHIO_item_c1 daAlinkHIO_item_c0::m = {
|
||||
@@ -3433,4 +3430,4 @@ const daAlinkHIO_wolf_c1 daAlinkHIO_wolf_c0::m = {
|
||||
0.7f,
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
// clang-format on
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
* Player Bomb action handling
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
|
||||
/* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv
|
||||
*/
|
||||
s16 daAlink_c::getBombExplodeTime() const {
|
||||
@@ -71,4 +73,4 @@ f32 daAlink_c::getBombExplodeWaterEffectLimit() const {
|
||||
/* 800E3820-800E3830 0DE160 0010+00 0/0 0/0 1/1 .text getBombInsectLimitAngle__9daAlink_cCFv */
|
||||
s16 daAlink_c::getBombInsectLimitAngle() const {
|
||||
return daAlinkHIO_bomb_c0::m.mBombInsectLimitAngle;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
* Player Boomerang action handling
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_boomerang.h"
|
||||
|
||||
/* 800DFFE0-800E0010 0DA920 0030+00 0/0 0/0 1/1 .text checkBoomerangLockAccept__9daAlink_cFv */
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_insect.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
/* 8010E48C-8010E52C 108DCC 00A0+00 1/1 0/0 0/0 .text bottleModelCallBack__9daAlink_cFv
|
||||
*/
|
||||
@@ -394,16 +395,16 @@ int daAlink_c::procBottleDrinkInit(u16 i_itemNo) {
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8010F698-8010F6F4 109FD8 005C+00 1/0 0/0 0/0 .text procBottleDrink__9daAlink_cFv */
|
||||
int daAlink_c::procBottleDrink() {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = commonBottleDrink(0);
|
||||
mProcVar3.field_0x300e = commonBottleDrink(0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -443,7 +444,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
@@ -454,7 +455,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
if (param_0 == 0x67) {
|
||||
setCylAtParam(0x200, dCcG_At_Spl_UNK_0, 0, 0, 0, 30.0f, 30.0f);
|
||||
}
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -484,9 +485,9 @@ int daAlink_c::procBottleOpen() {
|
||||
|
||||
if (mEquipItem == WATER_BOTTLE) {
|
||||
if (mWaterY > mLeftHandPos.y) {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -517,13 +518,13 @@ int daAlink_c::procBottleOpen() {
|
||||
mProcVar2.field_0x300c = 2;
|
||||
dComIfGs_setEquipBottleItemEmpty(mSelectItemId);
|
||||
|
||||
if (mEquipItem == WATER_BOTTLE && mProcVar3.field_0x300e.x != 0) {
|
||||
if (mEquipItem == WATER_BOTTLE && mProcVar3.field_0x300e != 0) {
|
||||
seStartOnlyReverb(Z2SE_LK_SPRINKLE_WATER);
|
||||
}
|
||||
} else if (frameCtrl_p->getFrame() > 16.0f && frameCtrl_p->getFrame() < 31.0f) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
|
||||
if (mProcVar0.field_0x3008 == 0 && frameCtrl_p->getFrame() >= 25.0f) {
|
||||
@@ -561,7 +562,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
current.angle.y = shape_angle.y;
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 4;
|
||||
mProcVar3.field_0x300e.y = param_1;
|
||||
mProcVar4.field_0x3010 = param_1;
|
||||
|
||||
if (var_r31 != NULL) {
|
||||
field_0x280c.setData(var_r31);
|
||||
@@ -630,7 +631,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
voiceStart(Z2SE_AL_V_SWING_BOTTLE);
|
||||
seStartOnlyReverb(Z2SE_AL_SWING_BOTTLE);
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -641,9 +642,9 @@ int daAlink_c::procBottleSwing() {
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (eventInfo.i_checkCommandCatch()) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000000);
|
||||
@@ -703,7 +704,7 @@ int daAlink_c::procBottleSwing() {
|
||||
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
procBottleGetInit(mProcVar3.field_0x300e.y);
|
||||
procBottleGetInit(mProcVar4.field_0x3010);
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_arrow.h"
|
||||
#include "d/actor/d_a_horse.h"
|
||||
|
||||
/* 800DE64C-800DE740 0D8F8C 00F4+00 1/1 0/0 2/2 .text getArrowFlyData__9daAlink_cCFPfPfi
|
||||
*/
|
||||
|
||||
@@ -130,11 +130,11 @@ BOOL daAlink_c::checkCanoeFishingRodGrabOrPut() const {
|
||||
|
||||
/* 800F3FC4-800F4008 0EE904 0044+00 2/2 0/0 0/0 .text initCanoeRide__9daAlink_cFv */
|
||||
void daAlink_c::initCanoeRide() {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x384c = (cXyz*)&l_canoeBaseAnime;
|
||||
mRideStatus = 3;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
|
||||
/* 800F4008-800F40E4 0EE948 00DC+00 2/2 0/0 0/0 .text checkCanoeJumpRide__9daAlink_cFv */
|
||||
@@ -149,7 +149,7 @@ BOOL daAlink_c::checkCanoeJumpRide() {
|
||||
|
||||
if (speed.y < 0.0f && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
|
||||
canoe->checkJumpRideFlg() && !checkDeadHP() &&
|
||||
(mProcID != PROC_FALL || mProcVar3.field_0x300e.y != 0)) {
|
||||
(mProcID != PROC_FALL || mProcVar4.field_0x3010 != 0)) {
|
||||
return procCanoeJumpRideInit(canoe);
|
||||
}
|
||||
|
||||
@@ -283,8 +283,8 @@ void daAlink_c::setSyncCanoePos() {
|
||||
|
||||
s16 var_r29;
|
||||
f32 var_f31;
|
||||
if ((canoe->speedF < 0.0f && mProcID == PROC_CANOE_WAIT) || (mProcID == PROC_CANOE_ROW && mProcVar3.field_0x300e.x == 1)) {
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if ((canoe->speedF < 0.0f && mProcID == PROC_CANOE_WAIT) || (mProcID == PROC_CANOE_ROW && mProcVar3.field_0x300e == 1)) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_r29 = 0x5000;
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
@@ -301,8 +301,8 @@ void daAlink_c::setSyncCanoePos() {
|
||||
}
|
||||
}
|
||||
|
||||
daPy_addCalcShort(&mProcVar3.field_0x300e.y, var_r29, 3, 0x1000, 0x100);
|
||||
field_0x30a2 = mProcVar3.field_0x300e.y;
|
||||
daPy_addCalcShort(&mProcVar4.field_0x3010, var_r29, 3, 0x1000, 0x100);
|
||||
field_0x30a2 = mProcVar4.field_0x3010;
|
||||
cLib_chaseF(&field_0x33f0, var_f31, 0.2f);
|
||||
}
|
||||
|
||||
@@ -391,7 +391,7 @@ int daAlink_c::procCanoeRideInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
initCanoeRide();
|
||||
mProcVar3.field_0x300e.x = 0x80;
|
||||
mProcVar3.field_0x300e = 0x80;
|
||||
swimOutAfter(1);
|
||||
return 1;
|
||||
}
|
||||
@@ -409,12 +409,12 @@ int daAlink_c::procCanoeRide() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procCanoeWaitInit(1);
|
||||
} else if (frameCtrl->getFrame() < 9.0f) {
|
||||
mProcVar3.field_0x300e.x += 0x180;
|
||||
mProcVar3.field_0x300e += 0x180;
|
||||
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
canoe->incShapeAngleZ(-mProcVar3.field_0x300e.x);
|
||||
canoe->incShapeAngleZ(-mProcVar3.field_0x300e);
|
||||
} else {
|
||||
canoe->incShapeAngleZ(mProcVar3.field_0x300e.x);
|
||||
canoe->incShapeAngleZ(mProcVar3.field_0x300e);
|
||||
}
|
||||
canoe->incShapeOffsetY(-4.0f);
|
||||
}
|
||||
@@ -529,7 +529,7 @@ int daAlink_c::procCanoeGetOffInit() {
|
||||
field_0x37c8.z -= -35.0f;
|
||||
|
||||
cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos);
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -553,9 +553,9 @@ int daAlink_c::procCanoeGetOff() {
|
||||
field_0x2f99 = 7;
|
||||
}
|
||||
} else {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm);
|
||||
field_0x33b0 = l_waitBaseAnime.y;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
@@ -577,7 +577,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
*/
|
||||
int daAlink_c::procCanoeWaitInit(int param_0) {
|
||||
if (mProcID == PROC_CANOE_FISHING_WAIT) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
return procCanoePaddleGrabInit();
|
||||
}
|
||||
|
||||
@@ -626,7 +626,7 @@ int daAlink_c::procCanoeWaitInit(int param_0) {
|
||||
|
||||
if (mEquipItem == NO_ITEM || (mEquipItem != 0x10B && !checkFisingRodLure())) {
|
||||
var_r27 = ANM_WAIT_SIT;
|
||||
} else if (mProcVar3.field_0x300e.z == 0) {
|
||||
} else if (mProcVar5.field_0x3012 == 0) {
|
||||
var_r27 = ANM_WAIT_CANOE_LEFT;
|
||||
} else {
|
||||
var_r27 = ANM_WAIT_CANOE_RIGHT;
|
||||
@@ -686,9 +686,9 @@ int daAlink_c::procCanoeWait() {
|
||||
|
||||
if (mThrowBoomerangAcKeep.getActor() != NULL || mProcVar1.field_0x300a != 0) {
|
||||
if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,9 +702,9 @@ int daAlink_c::procCanoeWait() {
|
||||
allUnequip(0);
|
||||
|
||||
if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -742,7 +742,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
int var_r28;
|
||||
if (temp_r3 < 0x40 || temp_r3 > 0x7F80) {
|
||||
if (param_0 == -3) {
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_r28 = 2;
|
||||
} else {
|
||||
var_r28 = 3;
|
||||
@@ -752,7 +752,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
field_0x3198 = -3;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_r28 = 3;
|
||||
} else {
|
||||
var_r28 = 2;
|
||||
@@ -767,20 +767,20 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
if (spC == 1) {
|
||||
var_r29 = var_r28 == 2 ? ANM_CANOE_ROW_RIGHT_BACK : ANM_CANOE_ROW_LEFT_BACK;
|
||||
|
||||
if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar3.field_0x300e.z == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar3.field_0x300e.z == 1)) {
|
||||
if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar5.field_0x3012 == 1)) {
|
||||
return procCanoePaddleShiftInit(var_r29);
|
||||
}
|
||||
} else {
|
||||
var_r29 = var_r28 == 2 ? ANM_CANOE_ROW_RIGHT : ANM_CANOE_ROW_LEFT;
|
||||
|
||||
if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar3.field_0x300e.z == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar3.field_0x300e.z == 1)) {
|
||||
if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar5.field_0x3012 == 1)) {
|
||||
return procCanoePaddleShiftInit(var_r29);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if (param_0 == -3) {
|
||||
if (mProcVar3.field_0x300e.z == 1) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
return procCanoePaddleShiftInit(ANM_CANOE_ROW_LEFT);
|
||||
}
|
||||
return procCanoePaddleShiftInit(ANM_CANOE_ROW_RIGHT);
|
||||
@@ -788,7 +788,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
field_0x3198 = -3;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 1) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
var_r29 = ANM_CANOE_ROW_RIGHT;
|
||||
} else {
|
||||
var_r29 = ANM_CANOE_ROW_LEFT;
|
||||
@@ -803,7 +803,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
BOOL var_r24 = 0;
|
||||
|
||||
if (var_r29 == ANM_CANOE_ROW_LEFT_BACK || var_r29 == ANM_CANOE_ROW_RIGHT_BACK) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
if (temp_r26->speedF > 0.5f * (-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) {
|
||||
var_r24 = 1;
|
||||
}
|
||||
@@ -811,7 +811,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
field_0x3478 = 32.0f;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
if (temp_r26->speedF < 0.5f * (var_f31 * getCanoeSpeedRate())) {
|
||||
var_r24 = 1;
|
||||
}
|
||||
@@ -854,7 +854,7 @@ int daAlink_c::procCanoeRow() {
|
||||
}
|
||||
} else {
|
||||
f32 var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
|
||||
if ((mProcVar3.field_0x300e.x == 1 && temp_r29->speedF > 0.5f * (-var_f30 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) || (mProcVar3.field_0x300e.x == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
|
||||
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
|
||||
var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
|
||||
}
|
||||
|
||||
@@ -867,13 +867,13 @@ int daAlink_c::procCanoeRow() {
|
||||
if (checkInputOnR()) {
|
||||
s16 temp_r0 = field_0x2fe2 - shape_angle.y;
|
||||
s16 var_r25;
|
||||
if (mProcVar3.field_0x300e.x == 1) {
|
||||
if (mProcVar3.field_0x300e == 1) {
|
||||
var_r25 = field_0x2fe2 + 0x8000;
|
||||
} else {
|
||||
var_r25 = field_0x2fe2;
|
||||
}
|
||||
|
||||
if (temp_r0 == -0x8000 || (temp_r0 > 0 && mProcVar3.field_0x300e.z == 1) || (temp_r0 < 0 && mProcVar3.field_0x300e.z == 0)) {
|
||||
if (temp_r0 == -0x8000 || (temp_r0 > 0 && mProcVar5.field_0x3012 == 1) || (temp_r0 < 0 && mProcVar5.field_0x3012 == 0)) {
|
||||
temp_r29->setAimAngle(var_r25);
|
||||
}
|
||||
var_r28 = mStickAngle;
|
||||
@@ -892,7 +892,7 @@ int daAlink_c::procCanoeRow() {
|
||||
var_f31 *= fabsf(cM_scos(var_r28));
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
temp_r29->setAimSpeed(var_f31 * getCanoeSpeedRate());
|
||||
} else {
|
||||
temp_r29->setAimSpeed(-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate);
|
||||
@@ -900,7 +900,7 @@ int daAlink_c::procCanoeRow() {
|
||||
}
|
||||
|
||||
if (temp_r27->checkPass(field_0x3478)) {
|
||||
if (mProcVar3.field_0x300e.z == 1) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
temp_r29->setPaddleOffsetRight();
|
||||
} else {
|
||||
temp_r29->setPaddleOffsetLeft();
|
||||
@@ -917,7 +917,7 @@ int daAlink_c::procCanoePaddleShiftInit(int param_0) {
|
||||
commonProcInit(PROC_CANOE_PADDLE_SHIFT);
|
||||
|
||||
f32 speed;
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
speed = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
speed = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
@@ -925,7 +925,7 @@ int daAlink_c::procCanoePaddleShiftInit(int param_0) {
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 1) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
field_0x2f93 = 0xFE;
|
||||
}
|
||||
@@ -950,14 +950,14 @@ int daAlink_c::procCanoePaddleShift() {
|
||||
} else if (checkAnmEnd(frame_ctrl)) {
|
||||
procCanoeRowInit(field_0x3198);
|
||||
} else if (frame_ctrl->checkPass(11)) {
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
field_0x2f92 = 0;
|
||||
field_0x2f93 = 0xFE;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x2f93 = 5;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -979,7 +979,7 @@ int daAlink_c::procCanoePaddlePutInit(int param_0) {
|
||||
commonProcInit(PROC_CANOE_PADDLE_PUT);
|
||||
|
||||
f32 var_f31;
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
@@ -987,12 +987,12 @@ int daAlink_c::procCanoePaddlePutInit(int param_0) {
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 1) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
field_0x2f93 = 0xFE;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = param_0;
|
||||
mProcVar3.field_0x300e = param_0;
|
||||
|
||||
setSyncCanoePos();
|
||||
((daCanoe_c*)mRideAcKeep.getActor())->setAimSpeed(0.0f);
|
||||
@@ -1021,7 +1021,7 @@ int daAlink_c::procCanoePaddlePut() {
|
||||
daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0];
|
||||
|
||||
if (checkAnmEnd(temp_r29)) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
return procCanoeGetOffInit();
|
||||
}
|
||||
|
||||
@@ -1068,7 +1068,7 @@ int daAlink_c::procCanoePaddleGrab() {
|
||||
|
||||
if (checkAnmEnd(temp_r29) != 0) {
|
||||
f32 var_f31;
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
@@ -1078,7 +1078,7 @@ int daAlink_c::procCanoePaddleGrab() {
|
||||
mUpperFrameCtrl[0].setFrame(11.0f);
|
||||
getNowAnmPackUpper(UPPER_0)->setFrame(11.0f);
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 1) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
field_0x2f93 = 0xFE;
|
||||
} else {
|
||||
@@ -1173,9 +1173,9 @@ int daAlink_c::procCanoeFishingWaitInit() {
|
||||
setSyncCanoePos();
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.x = cLib_minMaxLimit<s16>((s16)(field_0x311a - shape_angle.y), -0x3800, 0x3800);
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>((s16)(field_0x311a - shape_angle.y), -0x3800, 0x3800);
|
||||
field_0x311a = 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -1207,7 +1207,7 @@ int daAlink_c::procCanoeFishingWait() {
|
||||
}
|
||||
} else if (!checkNextActionCanoe() && checkCanoeFishingWaitAnime()) {
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
if (daPy_addCalcShort(&mBodyAngle.y, mProcVar3.field_0x300e.x, 2, 0x800, 0x200) == 0) {
|
||||
if (daPy_addCalcShort(&mBodyAngle.y, mProcVar3.field_0x300e, 2, 0x800, 0x200) == 0) {
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
}
|
||||
} else if (checkInputOnR() && ((mStickAngle > 0x2000 && mStickAngle < 0x6000) || (mStickAngle < -0x2000 && mStickAngle > -0x6000))) {
|
||||
@@ -1287,12 +1287,12 @@ int daAlink_c::procCanoeFishingGetInit() {
|
||||
var_r30 = ANM_CANOE_FISH_LEFT;
|
||||
field_0x3478 = 14.0f;
|
||||
field_0x347c = 30.0f;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
} else {
|
||||
var_r30 = ANM_CANOE_FISH_RIGHT;
|
||||
field_0x3478 = 24.0f;
|
||||
field_0x347c = 45.0f;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
|
||||
setSyncCanoePos();
|
||||
@@ -1717,7 +1717,7 @@ int daAlink_c::procFishingCastInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mItemVar0.field_0x3018 = 1;
|
||||
|
||||
if (checkFishingRodItem(mEquipItem)) {
|
||||
@@ -1758,7 +1758,7 @@ int daAlink_c::procFishingCast() {
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
mUpperFrameCtrl[2].setRate(0.0f);
|
||||
mUpperFrameCtrl[2].setFrame(0.0f);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(0.0f);
|
||||
@@ -1784,13 +1784,13 @@ int daAlink_c::procFishingFoodInit() {
|
||||
mDemo.setSpecialDemoType();
|
||||
commonProcInit(PROC_FISHING_FOOD);
|
||||
setSingleAnime(ANM_BOTTLE_OPEN, 1.0f, 0.0f, 21, 3.0f);
|
||||
mProcVar3.field_0x300e.x = mSelectItemId;
|
||||
mProcVar3.field_0x300e = mSelectItemId;
|
||||
|
||||
if (checkFishingRodItem(mEquipItem)) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mSelectItemId = checkItemSetButton(mEquipItem);
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
keepItemData();
|
||||
deleteEquipItem(0, 0);
|
||||
mSelectItemId = checkItemSetButton(0x108);
|
||||
@@ -1808,7 +1808,7 @@ int daAlink_c::procFishingFoodInit() {
|
||||
int daAlink_c::procFishingFood() {
|
||||
if (mUnderFrameCtrl[0].checkAnmEnd()) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
returnKeepItemData();
|
||||
}
|
||||
resetSpecialEvent();
|
||||
@@ -1816,17 +1816,17 @@ int daAlink_c::procFishingFood() {
|
||||
setSingleAnime(ANM_BOTTLE_OPEN, -1.0f, 0.0f, mUnderFrameCtrl[0].getEnd(), -1.0f);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
|
||||
u32 temp_r3 = dComIfGp_getSelectItem(mProcVar3.field_0x300e.x);
|
||||
if (temp_r3 == WORM || dComIfGp_getSelectItemNum(mProcVar3.field_0x300e.x) == 1) {
|
||||
dComIfGs_setEquipBottleItemEmpty(mProcVar3.field_0x300e.x);
|
||||
u32 temp_r3 = dComIfGp_getSelectItem(mProcVar3.field_0x300e);
|
||||
if (temp_r3 == WORM || dComIfGp_getSelectItemNum(mProcVar3.field_0x300e) == 1) {
|
||||
dComIfGs_setEquipBottleItemEmpty(mProcVar3.field_0x300e);
|
||||
} else {
|
||||
dComIfGp_addSelectItemNum(mProcVar3.field_0x300e.x, -1);
|
||||
dComIfGp_addSelectItemNum(mProcVar3.field_0x300e, -1);
|
||||
}
|
||||
|
||||
if (mItemMode != NO_ITEM) {
|
||||
dComIfGs_setEquipBottleItemIn(mProcVar3.field_0x300e.x, mItemMode);
|
||||
dComIfGs_setEquipBottleItemIn(mProcVar3.field_0x300e, mItemMode);
|
||||
if (mItemMode == BEE_CHILD) {
|
||||
dComIfGp_setSelectItemNum(mProcVar3.field_0x300e.x, 1);
|
||||
dComIfGp_setSelectItemNum(mProcVar3.field_0x300e, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
* Player Dominion Rod action handling
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_crod.h"
|
||||
#include "d/actor/d_a_cstatue.h"
|
||||
|
||||
/* 800E12E0-800E1310 0DBC20 0030+00 1/1 0/0 0/0 .text checkLv6BossRoom__9daAlink_cFv */
|
||||
@@ -34,7 +36,7 @@ f32 daAlink_c::getCopyRodBallDisMax() const {
|
||||
/* 800E1374-800E1390 0DBCB4 001C+00 6/6 0/0 7/7 .text getCopyRodControllActor__9daAlink_cFv */
|
||||
fopAc_ac_c* daAlink_c::getCopyRodControllActor() {
|
||||
if (mCopyRodAcKeep.getActor() != NULL) {
|
||||
return static_cast<daCrod_c*>(mCopyRodAcKeep.getActor())->getControllActor();
|
||||
return ((daCrod_c*)mCopyRodAcKeep.getActor())->getControllActor();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -44,7 +46,7 @@ fopAc_ac_c* daAlink_c::getCopyRodControllActor() {
|
||||
*/
|
||||
fopAc_ac_c* daAlink_c::getCopyRodCameraActor() {
|
||||
if (mCopyRodAcKeep.getActor() != NULL) {
|
||||
return static_cast<daCrod_c*>(mCopyRodAcKeep.getActor())->getCameraActor();
|
||||
return ((daCrod_c*)mCopyRodAcKeep.getActor())->getCameraActor();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -54,10 +56,9 @@ fopAc_ac_c* daAlink_c::getCopyRodCameraActor() {
|
||||
void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) {
|
||||
if (!checkCopyRodThrowAnime()) {
|
||||
if (param_0) {
|
||||
f32 tmp_0 = 0.0f;
|
||||
mUpperFrameCtrl[2].setRate(tmp_0);
|
||||
mUpperFrameCtrl[2].setFrame(tmp_0);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(tmp_0);
|
||||
mUpperFrameCtrl[2].setRate(0.0f);
|
||||
mUpperFrameCtrl[2].setFrame(0.0f);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(0.0f);
|
||||
} else {
|
||||
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
|
||||
}
|
||||
@@ -73,7 +74,7 @@ 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.x != 0)) ||
|
||||
return (dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e != 0)) ||
|
||||
i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 ||
|
||||
checkForestOldCentury();
|
||||
}
|
||||
@@ -96,7 +97,30 @@ void daAlink_c::setCopyRodControllAnime() {
|
||||
/* 800E15FC-800E1748 0DBF3C 014C+00 1/1 0/0 0/0 .text
|
||||
* setCopyRodControllUpperSpeedRate__9daAlink_cFv */
|
||||
void daAlink_c::setCopyRodControllUpperSpeedRate() {
|
||||
// NONMATCHING
|
||||
f32 var_f31;
|
||||
if (checkAttentionLock()) {
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
if (mProcID == PROC_STEP_MOVE) {
|
||||
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
} else {
|
||||
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
}
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
var_f31 *= 1.0f / (mHeavySpeedMultiplier * mHeavySpeedMultiplier);
|
||||
}
|
||||
}
|
||||
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
||||
cLib_chaseF(&field_0x33e8, var_f31, 0.15f);
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = &mUpperFrameCtrl[2];
|
||||
frame_ctrl->setFrame(field_0x33e8 * frame_ctrl->getEnd());
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(frame_ctrl->getFrame());
|
||||
}
|
||||
|
||||
/* 800E1748-800E1840 0DC088 00F8+00 2/2 0/0 0/0 .text setCopyRodModel__9daAlink_cFv */
|
||||
@@ -106,8 +130,10 @@ void daAlink_c::setCopyRodModel() {
|
||||
mHeldItemModel = initModel(mdl_data, 0x80000, 0x1000000);
|
||||
field_0x0724 = loadAramItemBrk(0x323, mHeldItemModel);
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
|
||||
field_0x0724->setFrame(0.0f);
|
||||
field_0x2f94 = 2;
|
||||
|
||||
mAtCps[0].SetAtSpl(dCcG_At_Spl_UNK_0);
|
||||
mAtCps[0].SetAtAtp(0);
|
||||
mAtCps[0].SetAtSe(20);
|
||||
@@ -115,6 +141,7 @@ void daAlink_c::setCopyRodModel() {
|
||||
mAtCps[0].OnAtSetBit();
|
||||
mAtCps[0].SetAtHitCallback(NULL);
|
||||
mAtCps[0].SetAtMtrl(dCcD_MTRL_NONE);
|
||||
|
||||
mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(field_0x30c0));
|
||||
mHeldItemModel->calc();
|
||||
}
|
||||
@@ -144,7 +171,7 @@ void daAlink_c::setCopyRodReadyAnime() {
|
||||
|
||||
/* 800E191C-800E1A30 0DC25C 0114+00 1/1 0/0 0/0 .text throwCopyRod__9daAlink_cFv */
|
||||
void daAlink_c::throwCopyRod() {
|
||||
daCrod_c* copy_rod = static_cast<daCrod_c*>(mItemAcKeep.getActor());
|
||||
daCrod_c* copy_rod = ((daCrod_c*)mItemAcKeep.getActor());
|
||||
onNoResetFlg1(FLG1_UNK_10000);
|
||||
|
||||
if (checkCopyRodTopUse()) {
|
||||
@@ -372,7 +399,7 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
voiceStart(Z2SE_AL_V_ATTACK_S);
|
||||
mAtCps[0].SetR(40.0f);
|
||||
@@ -394,16 +421,16 @@ int daAlink_c::procCopyRodSwing() {
|
||||
setCopyRodControllAnime();
|
||||
}
|
||||
} else if (frameCtrl->getFrame() >= field_0x3478 && frameCtrl->getFrame() < field_0x347c) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
seStartSwordCut(Z2SE_AL_COPYROD_SWING);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
if (changeCutReverseProc(ANM_CUT_RECOIL_A)) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -287,8 +287,7 @@ int daAlink_c::procCrawlMove() {
|
||||
}
|
||||
|
||||
/* 800F99FC-800F9ABC 0F433C 00C0+00 1/1 0/0 0/0 .text procCrawlAutoMoveInit__9daAlink_cFiP4cXyz */
|
||||
// r30 / r31 swap
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - r30 / r31 swap
|
||||
int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
|
||||
BOOL var_r30 = dComIfGp_checkPlayerStatus0(0, 0x2000);
|
||||
commonProcInit(PROC_CRAWL_AUTO_MOVE);
|
||||
@@ -309,12 +308,6 @@ int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800F9ABC-800F9D7C 0F43FC 02C0+00 1/0 0/0 0/0 .text procCrawlAutoMove__9daAlink_cFv */
|
||||
int daAlink_c::procCrawlAutoMove() {
|
||||
|
||||
+124
-75
@@ -3,7 +3,9 @@
|
||||
* Player Sword action handling
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_b_gnd.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
/* 800D0D38-800D0E08 0CB678 00D0+00 1/1 0/0 0/0 .text daAlink_searchNightStalker__FP10fopAc_ac_cPv
|
||||
*/
|
||||
@@ -24,7 +26,6 @@ static fopAc_ac_c* daAlink_searchNightStalker(fopAc_ac_c* i_actor, void*) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* 800D0E08-800D0E98 0CB748 0090+00 1/1 0/0 0/0 .text checkLightSwordMtrl__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::checkLightSwordMtrl() {
|
||||
@@ -342,8 +343,7 @@ BOOL daAlink_c::setSwordHitVibration(dCcD_GObjInf* i_gobj) {
|
||||
var_r4 = 2;
|
||||
}
|
||||
|
||||
f32 tmp_0 = 0.0f;
|
||||
dComIfGp_getVibration().StartShock(var_r4, 31, cXyz(tmp_0, 1.0f, tmp_0));
|
||||
dComIfGp_getVibration().StartShock(var_r4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -358,15 +358,79 @@ BOOL daAlink_c::checkAtShieldHit(dCcD_GObjInf& param_0) {
|
||||
|
||||
/* 800D1978-800D19C8 0CC2B8 0050+00 1/1 0/0 0/0 .text
|
||||
* checkCutReverseAt__9daAlink_cFP12dCcD_GObjInf */
|
||||
bool daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) {
|
||||
BOOL daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) {
|
||||
param_0->GetAtHitAc();
|
||||
return checkAtShieldHit(*param_0) ? true : false;
|
||||
return checkAtShieldHit(*param_0) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
/* 800D19C8-800D1E1C 0CC308 0454+00 5/5 0/0 0/0 .text
|
||||
* changeCutReverseProc__9daAlink_cFQ29daAlink_c11daAlink_ANM */
|
||||
BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) {
|
||||
// NONMATCHING
|
||||
if (checkCutReverseAt(&mAtCps[0]) || (mEquipItem != COPY_ROD && (checkCutReverseAt(&mAtCps[1]) || checkCutReverseAt(&mAtCps[2])))) {
|
||||
return procCutReverseInit(param_0);
|
||||
}
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNK_40) || mEquipItem == COPY_ROD) {
|
||||
cXyz sp28;
|
||||
Vec sp1C;
|
||||
|
||||
if (checkMagneBootsOn()) {
|
||||
sp1C.x = 0.0f;
|
||||
sp1C.y = 30.0f;
|
||||
sp1C.z = 0.0f;
|
||||
mDoMtx_multVecSR(mMagneBootMtx, &sp1C, &sp28);
|
||||
|
||||
sp28 += current.pos;
|
||||
} else {
|
||||
sp28.x = current.pos.x;
|
||||
sp28.y = current.pos.y + 30.0f;
|
||||
sp28.z = current.pos.z;
|
||||
}
|
||||
|
||||
if (commonLineCheck(&sp28, &field_0x3720) && !dComIfG_Bgsp().GetPolyAttackThrough(mLinkLinChk) && dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) {
|
||||
cM3dGPla sp34;
|
||||
dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp34);
|
||||
|
||||
f32 var_f31;
|
||||
if (checkMagneBootsOn()) {
|
||||
mDoMtx_multVecSR(mMagneBootInvMtx, &sp34.mNormal, &sp1C);
|
||||
var_f31 = sp1C.y;
|
||||
} else {
|
||||
var_f31 = sp34.mNormal.y;
|
||||
}
|
||||
|
||||
if (!cBgW_CheckBGround(var_f31) && !checkCutDashAnime()) {
|
||||
int temp_r3 = dComIfG_Bgsp().GetPolyAtt0(mLinkLinChk);
|
||||
|
||||
if (!checkWoodSwordEquip() && (temp_r3 == 2 || temp_r3 == 5 || temp_r3 == 0xE || temp_r3 == 8 || temp_r3 == 0xA)) {
|
||||
csXyz sp8(cM_atan2s(sp34.mNormal.y, sp34.mNormal.absXZ()), cM_atan2s(-sp34.mNormal.x, -sp34.mNormal.z), 0);
|
||||
|
||||
u16 var_r28;
|
||||
if (temp_r3 == 5 || temp_r3 == 0xE) {
|
||||
var_r28 = 0x752;
|
||||
} else if (temp_r3 == 8) {
|
||||
var_r28 = 0xAE3;
|
||||
} else {
|
||||
var_r28 = 0x32E;
|
||||
dKy_SordFlush_set(*mLinkLinChk.GetCrossP(), 2);
|
||||
}
|
||||
|
||||
dComIfGp_particle_set(var_r28, mLinkLinChk.GetCrossP(), &sp8, NULL);
|
||||
}
|
||||
|
||||
u32 var_r27;
|
||||
if (mAtCps[0].GetAtSe() == 14) {
|
||||
var_r27 = 0x40000;
|
||||
} else {
|
||||
var_r27 = dCcD_GObjInf::getHitSeID(mAtCps[0].GetAtSe(), 0);
|
||||
}
|
||||
|
||||
mZ2Link.startHitItemSE(var_r27, dKy_pol_sound_get(&mLinkLinChk), NULL, -1.0f);
|
||||
return procCutReverseInit(param_0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -573,13 +637,13 @@ int daAlink_c::checkCutAction() {
|
||||
/* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */
|
||||
void daAlink_c::checkCutTurnCharge() {
|
||||
if (swordButton()) {
|
||||
if (mProcVar3.field_0x300e.z < 3) {
|
||||
mProcVar3.field_0x300e.z++;
|
||||
if (mProcVar5.field_0x3012 < 3) {
|
||||
mProcVar5.field_0x3012++;
|
||||
} else {
|
||||
onResetFlg0(RFLG0_UNK_40);
|
||||
}
|
||||
} else {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -697,9 +761,9 @@ void daAlink_c::cancelCutCharge() {
|
||||
*/
|
||||
void daAlink_c::initCutAtnActorSearch() {
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
@@ -708,7 +772,7 @@ void daAlink_c::initCutAtnActorSearch() {
|
||||
/* 800D2C54-800D2C78 0CD594 0024+00 3/3 0/0 0/0 .text checkCutAtnActorChange__9daAlink_cFv */
|
||||
void daAlink_c::checkCutAtnActorChange() {
|
||||
if (field_0x32cc != (u32)mTargetedActor) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
}
|
||||
}
|
||||
@@ -811,16 +875,16 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordComboVoice();
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
|
||||
int cutDir = getCutDirection();
|
||||
if (mComboCutCount == 1 && (cutDir == DIR_LEFT || cutDir == DIR_RIGHT)) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
mProcVar1.field_0x300a = 4;
|
||||
@@ -844,7 +908,7 @@ int daAlink_c::procCutNormal() {
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0 && checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
if (mProcVar3.field_0x300e != 0 && checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
int cutDir = getCutDirection();
|
||||
if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT &&
|
||||
frameCtrl->getFrame() > 12.0f) ||
|
||||
@@ -874,11 +938,11 @@ int daAlink_c::procCutNormal() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (setShapeAngleToAtnActor(mProcVar3.field_0x300e.y)) {
|
||||
if (setShapeAngleToAtnActor(mProcVar4.field_0x3010)) {
|
||||
mProcVar2.field_0x300c = shape_angle.y;
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 2, 0x2000, 0x800);
|
||||
@@ -925,7 +989,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
setCutType(cutParams->m_cutType);
|
||||
field_0x3198 = cutParams->field_0x4;
|
||||
mProcVar2.field_0x300c = cutParams->field_0xa;
|
||||
mProcVar3.field_0x300e.x = cutParams->field_0xb;
|
||||
mProcVar3.field_0x300e = cutParams->field_0xb;
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
if (i_type == 0) {
|
||||
@@ -1006,7 +1070,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
field_0x2f99 = 13;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
initCutAtnActorSearch();
|
||||
@@ -1048,7 +1112,7 @@ int daAlink_c::procCutFinish() {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
if (frameCtrl_p->getFrame() >= mProcVar3.field_0x300e.x) {
|
||||
if (frameCtrl_p->getFrame() >= mProcVar3.field_0x300e) {
|
||||
onModeFlg(0x100);
|
||||
} else if (frameCtrl_p->getFrame() >= mProcVar2.field_0x300c) {
|
||||
offModeFlg(0x100);
|
||||
@@ -1077,10 +1141,10 @@ int daAlink_c::procCutFinish() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(mProcVar3.field_0x300e.y);
|
||||
setShapeAngleToAtnActor(mProcVar4.field_0x3010);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1142,7 +1206,7 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
|
||||
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3478 = current.pos.y;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
@@ -1207,7 +1271,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
initCutAtnActorSearch();
|
||||
return 1;
|
||||
@@ -1244,10 +1308,10 @@ int daAlink_c::procCutFinishJumpUpLand() {
|
||||
resetCombo(1);
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(mProcVar3.field_0x300e.y);
|
||||
setShapeAngleToAtnActor(mProcVar4.field_0x3010);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1287,7 +1351,7 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
|
||||
current.angle.y = shape_angle.y - -0x8000;
|
||||
field_0x307e = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
int temp_r3;
|
||||
if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B ||
|
||||
@@ -1462,8 +1526,7 @@ int daAlink_c::procCutJumpLand() {
|
||||
}
|
||||
|
||||
/* 800D47DC-800D4A74 0CF11C 0298+00 7/7 0/0 0/0 .text procCutTurnInit__9daAlink_cFii */
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - regalloc
|
||||
int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
const daAlinkHIO_cutTurn_c1* cutData = &daAlinkHIO_cutTurn_c0::m;
|
||||
const daAlinkHIO_anm_c* anm_data;
|
||||
@@ -1488,7 +1551,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mRightAttackStartFrame;
|
||||
field_0x3488 = cutData->mRightAttackEndFrame;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
mProcVar1.field_0x300a = 6;
|
||||
} else {
|
||||
anmID = ANM_CUT_TURN_LEFT;
|
||||
@@ -1502,11 +1565,11 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mLeftAttackStartFrame;
|
||||
field_0x3488 = cutData->mLeftAttackEndFrame;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar1.field_0x300a = 8;
|
||||
}
|
||||
|
||||
field_0x3480 = anm_data->->mCheckFrame;
|
||||
field_0x3480 = anm_data->mCheckFrame;
|
||||
resetCombo(1);
|
||||
|
||||
f32 morf;
|
||||
@@ -1558,17 +1621,11 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
field_0x3180 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
setCutWaterDropEffect();
|
||||
initCutTurnAt(field_0x347c, var_r29_3);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800D4A74-800D4C68 0CF3B4 01F4+00 1/0 0/0 0/0 .text procCutTurn__9daAlink_cFv */
|
||||
int daAlink_c::procCutTurn() {
|
||||
@@ -1834,14 +1891,14 @@ int daAlink_c::procCutDownInit() {
|
||||
resetCombo(1);
|
||||
|
||||
cXyz sp2C;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
if (mTargetedActor != NULL) {
|
||||
sp2C = static_cast<fopEn_enemy_c*>(mTargetedActor)->getDownPos();
|
||||
field_0x280c.setData(mTargetedActor);
|
||||
|
||||
if (fopAcM_GetName(mTargetedActor) == PROC_B_GND) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
} else {
|
||||
sp2C.set(current.pos.x + cM_ssin(shape_angle.y) * 100.0f, current.pos.y,
|
||||
@@ -1849,7 +1906,7 @@ int daAlink_c::procCutDownInit() {
|
||||
field_0x280c.clearData();
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
offModeFlg(2);
|
||||
@@ -1905,7 +1962,7 @@ int daAlink_c::procCutDownInit() {
|
||||
|
||||
/* 800D57F8-800D58A0 0D0138 00A8+00 1/0 0/0 0/0 .text procCutDown__9daAlink_cFv */
|
||||
int daAlink_c::procCutDown() {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1931,7 +1988,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
mSwordTopPos.abs2XZ(i_enemy->getDownPos()) < 10000.0f &&
|
||||
fabsf(i_enemy->current.pos.y - current.pos.y) < 100.0f))
|
||||
{
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
if (i_enemy != NULL) {
|
||||
i_enemy->onCutDownHitFlg();
|
||||
|
||||
@@ -1944,7 +2001,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
var_r30 = mPolySound;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
}
|
||||
|
||||
@@ -1957,7 +2014,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
|
||||
setFootEffectProcType(2);
|
||||
onResetFlg1(RFLG1_UNK_30);
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x400000);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
@@ -1983,7 +2040,7 @@ int daAlink_c::procCutDownLand() {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else if (mProcVar3.field_0x300e.x != 0) {
|
||||
} else if (mProcVar3.field_0x300e != 0) {
|
||||
if (mDemo.getDemoMode() == 0x51) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
@@ -1999,9 +2056,9 @@ int daAlink_c::procCutDownLand() {
|
||||
}
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
if (frameCtrl_p->getFrame() >= 37.0f) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (frameCtrl_p->getFrame() >= 30.0f) {
|
||||
mProcVar3.field_0x300e.y = 254;
|
||||
mProcVar4.field_0x3010 = 254;
|
||||
}
|
||||
|
||||
if (frameCtrl_p->checkPass(54.0f)) {
|
||||
@@ -2019,8 +2076,6 @@ int daAlink_c::procCutDownLand() {
|
||||
|
||||
|
||||
/* 800D5C88-800D5FC8 0D05C8 0340+00 2/1 0/0 0/0 .text procCutHeadInit__9daAlink_cFv */
|
||||
// small regalloc
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procCutHeadInit() {
|
||||
fopEn_enemy_c* enemy_p = (fopEn_enemy_c*)mTargetedActor;
|
||||
|
||||
@@ -2043,7 +2098,7 @@ int daAlink_c::procCutHeadInit() {
|
||||
field_0x280c.clearData();
|
||||
}
|
||||
|
||||
f32 fvar9 = cLib_minMaxLimit(sp2C.y, 30.0f, daAlinkHIO_cutHead_c0::m.mMaxHeight);
|
||||
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, daAlinkHIO_cutHead_c0::m.mMaxHeight);
|
||||
f32 fvar10 = JMAFastSqrt((fvar9 * -2.0f) / gravity);
|
||||
speed.y = fvar10 * -gravity;
|
||||
|
||||
@@ -2054,7 +2109,7 @@ int daAlink_c::procCutHeadInit() {
|
||||
|
||||
field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10);
|
||||
mNormalSpeed = field_0x3478 * fvar10 * 2.0f;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
current.angle.y = sp2C.atan2sX_Z();
|
||||
shape_angle.y = current.angle.y;
|
||||
@@ -2066,16 +2121,10 @@ int daAlink_c::procCutHeadInit() {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::procCutHeadInit() {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800D5FC8-800D6130 0D0908 0168+00 1/0 0/0 0/0 .text procCutHead__9daAlink_cFv */
|
||||
int daAlink_c::procCutHead() {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, field_0x3478);
|
||||
|
||||
if (speed.y <= 0.0f) {
|
||||
@@ -2084,7 +2133,7 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, maxFallSpeed, 0);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setCutWaterDropEffect();
|
||||
setSwordVoiceSe(Z2SE_AL_V_KABUTO_ATK);
|
||||
}
|
||||
@@ -2200,8 +2249,8 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
|
||||
setCutWaterDropEffect();
|
||||
mProcVar3.field_0x300e.x = 4;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 4;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3198 = 2;
|
||||
return 1;
|
||||
}
|
||||
@@ -2210,7 +2259,7 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
int daAlink_c::procCutLargeJump() {
|
||||
daPy_frameCtrl_c* frameCtrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
@@ -2226,7 +2275,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= 2.0f) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
|
||||
if (!checkModeFlg(2) && frameCtrl->getFrame() >= 5.0f) {
|
||||
@@ -2246,10 +2295,10 @@ int daAlink_c::procCutLargeJump() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
mProcVar3.field_0x300e.x--;
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
mProcVar3.field_0x300e--;
|
||||
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
@@ -2349,8 +2398,8 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -2363,10 +2412,10 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
field_0x2f99 = 4;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
@@ -2375,8 +2424,8 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
if (mProcVar4.field_0x3010 == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
setFaceBasicBck(0x149);
|
||||
setFaceBasicBtp(0x3E1);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_horse.h"
|
||||
|
||||
/* 800D6D94-800D6DA4 0D16D4 0010+00 0/0 0/0 2/2 .text getFreezeR__9daAlink_cCFv */
|
||||
s16 daAlink_c::getFreezeR() const {
|
||||
@@ -830,7 +831,7 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
|
||||
var_r29->z * var_f29 + var_r29->x * var_f30);
|
||||
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -daAlinkHIO_damNormal_c0::m.field_0x50, daAlinkHIO_damNormal_c0::m.field_0x50);
|
||||
mProcVar3.field_0x300e.x = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -daAlinkHIO_damNormal_c0::m.field_0x52, daAlinkHIO_damNormal_c0::m.field_0x52);
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -daAlinkHIO_damNormal_c0::m.field_0x52, daAlinkHIO_damNormal_c0::m.field_0x52);
|
||||
|
||||
if (freeze_player) {
|
||||
var_f31 = 0.0f;
|
||||
@@ -862,7 +863,7 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
|
||||
}
|
||||
|
||||
current.angle.y = var_r29->atan2sX_Z();
|
||||
mProcVar3.field_0x300e.y = current.angle.y;
|
||||
mProcVar4.field_0x3010 = current.angle.y;
|
||||
|
||||
mNormalSpeed = var_r29->absXZ() * daAlinkHIO_damNormal_c0::m.field_0x58 + daAlinkHIO_damNormal_c0::m.field_0x54;
|
||||
if (mNormalSpeed > daAlinkHIO_move_c0::m.mMaxSpeed) {
|
||||
@@ -893,7 +894,7 @@ int daAlink_c::procDamage() {
|
||||
f32 var_f31 = cM_fsin(field_0x347c * var_f30);
|
||||
|
||||
mBodyAngle.x = mProcVar2.field_0x300c * var_f31;
|
||||
mBodyAngle.z = -mProcVar3.field_0x300e.x * var_f31;
|
||||
mBodyAngle.z = -mProcVar3.field_0x300e * var_f31;
|
||||
mBodyAngle.y = 0;
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_damNormal_c0::m.field_0x5C);
|
||||
@@ -917,7 +918,7 @@ int daAlink_c::procDamage() {
|
||||
onModeFlg(4);
|
||||
|
||||
if (!checkNextAction(1)) {
|
||||
current.angle.y = mProcVar3.field_0x300e.y;
|
||||
current.angle.y = mProcVar4.field_0x3010;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+111
-132
@@ -9,12 +9,15 @@
|
||||
#include "d/d_gameover.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "d/actor/d_a_kytag04.h"
|
||||
#include "d/actor/d_a_tag_mhint.h"
|
||||
#include "d/actor/d_a_tag_mist.h"
|
||||
#include "d/actor/d_a_tag_mstop.h"
|
||||
#include "d/actor/d_a_tag_mwait.h"
|
||||
#include "d/actor/d_a_canoe.h"
|
||||
#include "d/actor/d_a_horse.h"
|
||||
#include "d/actor/d_a_midna.h"
|
||||
#include "d/actor/d_a_e_wb.h"
|
||||
|
||||
/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */
|
||||
BOOL daAlink_c::checkEventRun() const {
|
||||
@@ -210,7 +213,7 @@ int daAlink_c::checkDemoAction() {
|
||||
fopAc_ac_c* board_p = (fopAc_ac_c*)fopAcIt_Judge(
|
||||
(fopAcIt_JudgeFunc)daAlink_searchIceLeaf, NULL);
|
||||
if (board_p != NULL) {
|
||||
field_0x2fa8 = 5;
|
||||
mGndPolySpecialCode = dBgW_SPCODE_LIGHT_SNOW;
|
||||
return procBoardWaitInit(board_p);
|
||||
}
|
||||
} else {
|
||||
@@ -825,8 +828,7 @@ void daAlink_c::resetSpecialEvent() {
|
||||
}
|
||||
|
||||
/* 80117CF8-801180EC 112638 03F4+00 4/4 0/0 0/0 .text endDemoMode__9daAlink_cFv */
|
||||
// one wrong branch
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - one wrong branch
|
||||
void daAlink_c::endDemoMode() {
|
||||
BOOL temp_r30 = checkFlyAtnWait();
|
||||
endHighModel();
|
||||
@@ -922,15 +924,9 @@ void daAlink_c::endDemoMode() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
void daAlink_c::endDemoMode() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 801180EC-80118170 112A2C 0084+00 2/2 0/0 0/0 .text getDemoLookActor__9daAlink_cFv */
|
||||
// weird gameinfo load
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - weird gameinfo load
|
||||
fopAc_ac_c* daAlink_c::getDemoLookActor() {
|
||||
if (mDemo.getParam0() == 1) {
|
||||
return dComIfGp_event_getPt1();
|
||||
@@ -944,11 +940,6 @@ fopAc_ac_c* daAlink_c::getDemoLookActor() {
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
fopAc_ac_c* daAlink_c::getDemoLookActor() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80118170-801181A0 112AB0 0030+00 4/4 0/0 0/0 .text checkFlyAtnWait__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkFlyAtnWait() {
|
||||
@@ -1110,7 +1101,7 @@ BOOL daAlink_c::checkEndMessage(u32 param_0) {
|
||||
/* 80118840-801188B0 113180 0070+00 1/1 0/0 0/0 .text setDemoRightHandIndex__9daAlink_cFUs */
|
||||
u8 daAlink_c::setDemoRightHandIndex(u16 param_0) {
|
||||
if (param_0 == 0xFD) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
return 6;
|
||||
} else if (param_0 == 0xFC) {
|
||||
field_0x2fab |= 0x10;
|
||||
@@ -1258,8 +1249,7 @@ void daAlink_c::setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_anmID) {
|
||||
|
||||
/* 801190A4-80119134 1139E4 0090+00 1/1 0/0 0/0 .text setHighModelFaceBtk__9daAlink_cFUs
|
||||
*/
|
||||
// extra mr
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - extra mr
|
||||
void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
|
||||
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(
|
||||
dStage_roomControl_c::getDemoArcName(), i_anmID);
|
||||
@@ -1272,16 +1262,10 @@ void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
|
||||
field_0x068c = btk;
|
||||
}
|
||||
}
|
||||
#else
|
||||
void daAlink_c::setHighModelFaceBtk(u16 param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80119134-801191C4 113A74 0090+00 1/1 0/0 0/0 .text
|
||||
* setDemoBrk__9daAlink_cFPP15J3DAnmTevRegKeyP8J3DModelUs */
|
||||
// extra mr
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - extra mr
|
||||
void daAlink_c::setDemoBrk(J3DAnmTevRegKey** param_0, J3DModel* param_1, u16 i_anmID) {
|
||||
J3DAnmTevRegKey* brk =
|
||||
(J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), i_anmID);
|
||||
@@ -1294,11 +1278,6 @@ void daAlink_c::setDemoBrk(J3DAnmTevRegKey** param_0, J3DModel* param_1, u16 i_a
|
||||
*param_0 = brk;
|
||||
}
|
||||
}
|
||||
#else
|
||||
void daAlink_c::setDemoBrk(J3DAnmTevRegKey** param_0, J3DModel* param_1, u16 param_2) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 801191C4-80119464 113B04 02A0+00 1/1 0/0 0/0 .text
|
||||
* setStickAnmData__9daAlink_cFP10J3DAnmBaseiiUsi */
|
||||
@@ -1411,7 +1390,7 @@ int daAlink_c::procCoToolDemoInit() {
|
||||
mNowAnmPackUpper[1].setAnmTransform(NULL);
|
||||
|
||||
field_0x3198 = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x2fab = 0;
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
mUnderAnmHeap[0].setBufferSize(0x10800);
|
||||
@@ -1430,7 +1409,7 @@ int daAlink_c::procCoToolDemo() {
|
||||
|
||||
onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
field_0x3198 = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x2fab = 0;
|
||||
|
||||
if (demo_actor_p != NULL) {
|
||||
@@ -1838,7 +1817,7 @@ int daAlink_c::procCoUnequipInit() {
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.field_0x94);
|
||||
@@ -1855,7 +1834,7 @@ int daAlink_c::procCoUnequipInit() {
|
||||
}
|
||||
} else if (mDemo.getParam1() == 2) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setSingleAnime(ANM_TRADE_ITEM_PULL_OUT, 1.0f, 0.0f, 39, 3.0f);
|
||||
}
|
||||
}
|
||||
@@ -1894,7 +1873,7 @@ int daAlink_c::procCoUnequip() {
|
||||
void daAlink_c::setGetSubBgm(int i_seTypeIdx) {
|
||||
u32 se_type = getSeType[i_seTypeIdx];
|
||||
|
||||
if (se_type == 3 && mProcVar3.field_0x300e.y == 0) {
|
||||
if (se_type == 3 && mProcVar4.field_0x3010 == 0) {
|
||||
se_type = 7;
|
||||
}
|
||||
|
||||
@@ -2022,23 +2001,23 @@ int daAlink_c::procCoGetItemInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
if (var_r31 != 0) {
|
||||
mProcVar3.field_0x300e.x = -0x8000;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e = -0x8000;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
} else if (mDemo.getParam1() == 2) {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x =
|
||||
mProcVar3.field_0x300e =
|
||||
shape_angle.y - (fopCamM_GetAngleY(dComIfGp_getCamera(field_0x317c)) + 0x8000);
|
||||
s16 temp_r28 = mProcVar3.field_0x300e.x + 0x16C1;
|
||||
s16 temp_r31 = mProcVar3.field_0x300e.x - 0x16C1;
|
||||
s16 temp_r28 = mProcVar3.field_0x300e + 0x16C1;
|
||||
s16 temp_r31 = mProcVar3.field_0x300e - 0x16C1;
|
||||
|
||||
if (abs(temp_r28) > abs(temp_r31)) {
|
||||
mProcVar3.field_0x300e.x = temp_r31;
|
||||
mProcVar3.field_0x300e = temp_r31;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = temp_r28;
|
||||
mProcVar3.field_0x300e = temp_r28;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2047,11 +2026,11 @@ int daAlink_c::procCoGetItemInit() {
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x3198 = 0;
|
||||
field_0x32cc = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
dKy_Itemgetcol_chg_on();
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000000);
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
onEndResetFlg1(ERFLG1_UNK_8);
|
||||
}
|
||||
|
||||
@@ -2061,7 +2040,7 @@ int daAlink_c::procCoGetItemInit() {
|
||||
|
||||
/* 8011AC28-8011B3F0 115568 07C8+00 1/0 0/0 0/0 .text procCoGetItem__9daAlink_cFv */
|
||||
int daAlink_c::procCoGetItem() {
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
onEndResetFlg1(ERFLG1_UNK_8);
|
||||
}
|
||||
|
||||
@@ -2088,14 +2067,14 @@ int daAlink_c::procCoGetItem() {
|
||||
if (frameCtrl_p->getFrame() < field_0x3480) {
|
||||
shape_angle.y =
|
||||
current.angle.y -
|
||||
(field_0x3484 * (mProcVar3.field_0x300e.x * (frameCtrl_p->getFrame() - field_0x347c)));
|
||||
(field_0x3484 * (mProcVar3.field_0x300e * (frameCtrl_p->getFrame() - field_0x347c)));
|
||||
|
||||
if (mProcVar3.field_0x300e.y != 0 && checkWolf()) {
|
||||
if (mProcVar4.field_0x3010 != 0 && checkWolf()) {
|
||||
current.pos.x -= cM_ssin(current.angle.y) * 3.888889f;
|
||||
current.pos.z -= cM_scos(current.angle.y) * 3.888889f;
|
||||
}
|
||||
} else {
|
||||
shape_angle.y = current.angle.y - mProcVar3.field_0x300e.x;
|
||||
shape_angle.y = current.angle.y - mProcVar3.field_0x300e;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2169,14 +2148,14 @@ int daAlink_c::procCoGetItem() {
|
||||
|
||||
if (mProcVar1.field_0x300a == 0) {
|
||||
mProcVar1.field_0x300a = 1;
|
||||
shape_angle.y = current.angle.y - mProcVar3.field_0x300e.x;
|
||||
shape_angle.y = current.angle.y - mProcVar3.field_0x300e;
|
||||
|
||||
if (mDemo.getParam1() == 1) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
}
|
||||
} else {
|
||||
shape_angle.y =
|
||||
current.angle.y - (mProcVar3.field_0x300e.x * (mProcVar1.field_0x300a + 7)) * (1.0f / 7.0f);
|
||||
current.angle.y - (mProcVar3.field_0x300e * (mProcVar1.field_0x300a + 7)) * (1.0f / 7.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2214,7 +2193,7 @@ int daAlink_c::procCoGetItem() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.y != 0 && checkTreasureRupeeReturn(mProcVar2.field_0x300c)) {
|
||||
if (mProcVar4.field_0x3010 != 0 && checkTreasureRupeeReturn(mProcVar2.field_0x300c)) {
|
||||
if (mProcVar2.field_0x300c == 0xED) {
|
||||
field_0x32cc = 0x6A;
|
||||
}
|
||||
@@ -2319,15 +2298,15 @@ int daAlink_c::procDoorOpenInit() {
|
||||
if (mDemo.getParam0() == 4) {
|
||||
open_anm = ANM_DOOR_OPEN_ROLL;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (mDemo.getParam0() == 5) {
|
||||
open_anm = ANM_DOOR_OPEN_SLIDE;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
if (mDemo.getParam0() & 1) {
|
||||
open_anm = ANM_DOOR_OPEN_RIGHT;
|
||||
@@ -2352,7 +2331,7 @@ int daAlink_c::procDoorOpenInit() {
|
||||
field_0x34d4 = l_waitBaseAnime;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
@@ -2363,7 +2342,7 @@ int daAlink_c::procDoorOpenInit() {
|
||||
mLinkAcch.OnLineCheckNone();
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2373,15 +2352,15 @@ int daAlink_c::procDoorOpen() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x3198 == 0) {
|
||||
if (mProcVar2.field_0x300c == 0 && mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar2.field_0x300c == 0 && mProcVar4.field_0x3010 != 0) {
|
||||
if (frameCtrl_p->getFrame() >= 9.0f && frameCtrl_p->getFrame() < field_0x347c) {
|
||||
field_0x2f92 = 3;
|
||||
} else {
|
||||
field_0x2f92 = 4;
|
||||
}
|
||||
} else if (frameCtrl_p->checkPass(18.0f) && mProcVar3.field_0x300e.x != 0) {
|
||||
} else if (frameCtrl_p->checkPass(18.0f) && mProcVar3.field_0x300e != 0) {
|
||||
voiceStart(Z2SE_AL_V_PUSH_ROCK);
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2398,7 +2377,7 @@ int daAlink_c::procDoorOpen() {
|
||||
setSingleAnimeBaseMorf(open_anm, 0.0f);
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x2f99 = 5;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else {
|
||||
mLinkAcch.ClrWallNone();
|
||||
mLinkAcch.OffLineCheckNone();
|
||||
@@ -2413,8 +2392,8 @@ int daAlink_c::procDoorOpen() {
|
||||
}
|
||||
} else if (field_0x3198 == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
field_0x2f99 = 5;
|
||||
}
|
||||
@@ -2610,9 +2589,9 @@ int daAlink_c::procCoDeadInit(int param_0) {
|
||||
mDamageTimer = 0;
|
||||
|
||||
if (checkWolf()) {
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
mProcVar4.field_0x3010 = 2;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
mProcVar4.field_0x3010 = 2;
|
||||
}
|
||||
|
||||
setDeadRideSyncPos();
|
||||
@@ -2681,14 +2660,14 @@ int daAlink_c::procCoDeadInit(int param_0) {
|
||||
field_0x3478 = 1.0f;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x20000000);
|
||||
mMsgClassID = 0;
|
||||
setFootEffectProcType(4);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3080 = 0;
|
||||
mProcVar3.field_0x300e.z = 0x3F;
|
||||
mProcVar5.field_0x3012 = 0x3F;
|
||||
field_0x3198 = -1;
|
||||
return 1;
|
||||
}
|
||||
@@ -2714,11 +2693,11 @@ int daAlink_c::procCoDead() {
|
||||
}
|
||||
|
||||
if (!checkNoResetFlg2(FLG2_FORCE_GAMEOVER)) {
|
||||
mProcVar3.field_0x300e.x++;
|
||||
if (mProcVar3.field_0x300e.x == 2) {
|
||||
mProcVar3.field_0x300e++;
|
||||
if (mProcVar3.field_0x300e == 2) {
|
||||
dCam_getBody()->StartEventCamera(9, fopAcM_GetID(this), 0);
|
||||
} else if (mProcVar3.field_0x300e.x > 10) {
|
||||
mProcVar3.field_0x300e.x = 10;
|
||||
} else if (mProcVar3.field_0x300e > 10) {
|
||||
mProcVar3.field_0x300e = 10;
|
||||
}
|
||||
|
||||
if (!checkModeFlg(0x400)) {
|
||||
@@ -2778,8 +2757,8 @@ int daAlink_c::procCoDead() {
|
||||
(checkStageName("D_MN08C") && !dComIfGs_isEventBit(0x2880))))
|
||||
{
|
||||
var_r3_2 = 0;
|
||||
} else if (mProcVar3.field_0x300e.z != 0x3F) {
|
||||
var_r3_2 = mProcVar3.field_0x300e.z;
|
||||
} else if (mProcVar5.field_0x3012 != 0x3F) {
|
||||
var_r3_2 = mProcVar5.field_0x3012;
|
||||
var_r30 = field_0x3198;
|
||||
} else {
|
||||
startRestartRoom(var_r31, 0xC9, 0, 1);
|
||||
@@ -2802,7 +2781,7 @@ int daAlink_c::procCoLookAroundInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBase(WANM_ENTRANCE);
|
||||
@@ -2816,7 +2795,7 @@ int daAlink_c::procCoLookAroundInit() {
|
||||
} else {
|
||||
setSingleAnimeBase(ANM_ENTRANCE);
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2837,7 +2816,7 @@ int daAlink_c::procCoLookAround() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else if (mProcVar3.field_0x300e.x != 0 && frame_ctrl->checkPass(5.0f)) {
|
||||
} else if (mProcVar3.field_0x300e != 0 && frame_ctrl->checkPass(5.0f)) {
|
||||
voiceStart(Z2SE_AL_V_ENTRANCE);
|
||||
}
|
||||
|
||||
@@ -2972,7 +2951,7 @@ int daAlink_c::procHandPatInit() {
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
shape_angle.y += 0x8000;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2984,9 +2963,9 @@ int daAlink_c::procHandPat() {
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -3321,7 +3300,7 @@ int daAlink_c::procWolfSnowEscapeInit() {
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
field_0x3478 = 0.14285715f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mNormalSpeed = 30.0f;
|
||||
return 1;
|
||||
}
|
||||
@@ -3330,7 +3309,7 @@ int daAlink_c::procWolfSnowEscapeInit() {
|
||||
int daAlink_c::procWolfSnowEscape() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
return 1;
|
||||
}
|
||||
@@ -3363,7 +3342,7 @@ int daAlink_c::procWolfSnowEscape() {
|
||||
} else {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.field_0x70, 3.0f);
|
||||
field_0x2f99 = 0x30;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
} else if (frameCtrl_p->checkPass(12.0f)) {
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -3386,8 +3365,8 @@ int daAlink_c::procZoraMoveInit() {
|
||||
setSpecialGravity(tmp_0, maxFallSpeed, 0);
|
||||
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
mProcVar3.field_0x300e.y = 5000;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar4.field_0x3010 = 5000;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x384c = (cXyz*)&l_boarBaseAnime;
|
||||
return 1;
|
||||
}
|
||||
@@ -3452,18 +3431,18 @@ int daAlink_c::procTradeItemOutInit() {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x10);
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
|
||||
if (mDemo.getParam0() != 1) {
|
||||
if (mDemo.getParam0() == 2) {
|
||||
if (checkLetterItem(mDemo.getParam1())) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
} else {
|
||||
if (checkLetterItem(dComIfGp_event_getPreItemNo())) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3510,7 +3489,7 @@ int daAlink_c::procTradeItemOut() {
|
||||
} else {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
if (mDemo.getParam0() == 1) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
@@ -3523,8 +3502,8 @@ int daAlink_c::procTradeItemOut() {
|
||||
field_0x280c.setData(item_partner_p);
|
||||
item_partner_p->show();
|
||||
|
||||
if (mProcVar3.field_0x300e.y == 0) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
if (mProcVar4.field_0x3010 == 0) {
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
seStartOnlyReverb(Z2SE_AL_OPEN_LETTER);
|
||||
}
|
||||
|
||||
@@ -3540,7 +3519,7 @@ int daAlink_c::procTradeItemOut() {
|
||||
} else if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setSingleAnimeBase(ANM_TRADE_ITEM_WAIT);
|
||||
onModeFlg(0x100);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
} else {
|
||||
setTradeItemOutHand();
|
||||
}
|
||||
@@ -3570,7 +3549,7 @@ int daAlink_c::procNotUseItemInit(int param_0) {
|
||||
mMsgClassID = -1;
|
||||
field_0x3198 = param_0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x3194 = 3;
|
||||
|
||||
@@ -3579,9 +3558,9 @@ int daAlink_c::procNotUseItemInit(int param_0) {
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000800);
|
||||
|
||||
if (checkLetterItem(param_0)) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -3596,7 +3575,7 @@ int daAlink_c::procNotUseItem() {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
daItemBase_c* item_partner_p = (daItemBase_c*)fopAcM_getItemEventPartner(this);
|
||||
#ifdef DEBUG
|
||||
if (item_partner_p != NULL && fopAcM_GetName(item_partner_p) != PROC_ITEM &&
|
||||
@@ -3613,8 +3592,8 @@ int daAlink_c::procNotUseItem() {
|
||||
field_0x280c.setData(item_partner_p);
|
||||
item_partner_p->show();
|
||||
|
||||
if (mProcVar3.field_0x300e.y == 0) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
if (mProcVar4.field_0x3010 == 0) {
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
seStartOnlyReverb(Z2SE_AL_OPEN_LETTER);
|
||||
}
|
||||
|
||||
@@ -3628,7 +3607,7 @@ int daAlink_c::procNotUseItem() {
|
||||
} else if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setSingleAnimeBase(ANM_TRADE_ITEM_WAIT);
|
||||
onModeFlg(0x100);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
} else {
|
||||
setTradeItemOutHand();
|
||||
}
|
||||
@@ -3815,7 +3794,7 @@ int daAlink_c::procMasterSwordPullInit() {
|
||||
|
||||
setSingleAnimeBase(ANM_DEMO_MASTER_SWORD_PULL);
|
||||
voiceStart(Z2SE_AL_V_MSTR_SW_PULLOUT);
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -3830,9 +3809,9 @@ int daAlink_c::procMasterSwordPull() {
|
||||
} else if (frame_ctrl->getFrame() >= 36.0f) {
|
||||
field_0x2f93 = 10;
|
||||
} else if (frame_ctrl->getFrame() >= 9.0f) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (frame_ctrl->getFrame() >= 1.0f) {
|
||||
mProcVar3.field_0x300e.y = 4;
|
||||
mProcVar4.field_0x3010 = 4;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -3890,10 +3869,10 @@ int daAlink_c::procDungeonWarpInit() {
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -3910,15 +3889,15 @@ int daAlink_c::procDungeonWarp() {
|
||||
|
||||
f32 sin = cM_ssin(mProcVar2.field_0x300c);
|
||||
shape_angle.y += (s16)(14336.0f * sin);
|
||||
mProcVar3.field_0x300e.x = 8.0f * sin + 24.0f * (1.0f - scale.x);
|
||||
mProcVar3.field_0x300e = 8.0f * sin + 24.0f * (1.0f - scale.x);
|
||||
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
return 1;
|
||||
} else {
|
||||
if (mProcVar2.field_0x300c == 0x4000) {
|
||||
if (mProcVar3.field_0x300e.y == 0) {
|
||||
if (mProcVar4.field_0x3010 == 0) {
|
||||
dComIfGp_particle_set(0xA61, ¤t.pos, &tevStr, NULL, NULL);
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
|
||||
cLib_addCalc(&scale.x, 0.0f, 0.5f, 0.4f, 0.005f);
|
||||
@@ -3936,7 +3915,7 @@ int daAlink_c::procDungeonWarp() {
|
||||
dMeter2Info_warpInProc();
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
}
|
||||
current.pos.y += 5.0f;
|
||||
field_0x2b98 = (1.0f - scale.y) * 100.0f;
|
||||
@@ -3966,8 +3945,8 @@ int daAlink_c::procDungeonWarpSceneStartInit() {
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0x4000;
|
||||
mProcVar3.field_0x300e.x = 0x20;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 0x20;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
current.pos.y += 120.0f;
|
||||
shape_angle.y += 0x7F7A;
|
||||
@@ -3980,8 +3959,8 @@ int daAlink_c::procDungeonWarpSceneStartInit() {
|
||||
|
||||
/* 8011F460-8011F5D4 119DA0 0174+00 1/0 0/0 0/0 .text procDungeonWarpSceneStart__9daAlink_cFv */
|
||||
int daAlink_c::procDungeonWarpSceneStart() {
|
||||
if (mProcVar3.field_0x300e.y == 0) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
if (mProcVar4.field_0x3010 == 0) {
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
seStartOnlyReverb(Z2SE_TKC_WARP_OUT);
|
||||
}
|
||||
|
||||
@@ -4007,7 +3986,7 @@ int daAlink_c::procDungeonWarpSceneStart() {
|
||||
|
||||
f32 sin = cM_ssin(mProcVar2.field_0x300c);
|
||||
shape_angle.y += (s16)(sin * 14336.0f);
|
||||
mProcVar3.field_0x300e.x = (sin * 8.0f) + ((1.0f - scale.x) * 24.0f);
|
||||
mProcVar3.field_0x300e = (sin * 8.0f) + ((1.0f - scale.x) * 24.0f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -4069,7 +4048,7 @@ void daAlink_c::dungeonReturnWarp() {
|
||||
|
||||
/* 8011F8B8-8011F9EC 11A1F8 0134+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daAlink_cFv */
|
||||
void daAlink_c::skipPortalObjWarp() {
|
||||
if (mProcID == PROC_WARP && mProcVar3.field_0x300e.x <= 0) {
|
||||
if (mProcID == PROC_WARP && mProcVar3.field_0x300e <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4086,7 +4065,7 @@ void daAlink_c::skipPortalObjWarp() {
|
||||
}
|
||||
|
||||
if (mProcID == PROC_WARP) {
|
||||
mProcVar3.field_0x300e.x = -1;
|
||||
mProcVar3.field_0x300e = -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4163,9 +4142,9 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3478 = 0.0f;
|
||||
mProcVar2.field_0x300c = param_0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
mProcVar3.field_0x300e.y = 0xFF;
|
||||
mProcVar4.field_0x3010 = 0xFF;
|
||||
field_0x3488 = 1.0f;
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
@@ -4230,7 +4209,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
|
||||
if (checkWolf()) {
|
||||
field_0x3480 = 3.5f;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3488 = -1.0f;
|
||||
} else {
|
||||
field_0x3480 = 5.5f;
|
||||
@@ -4247,7 +4226,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
kytag04_class* kytag04_p =
|
||||
(kytag04_class*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchPortal, ¤t.pos);
|
||||
if (kytag04_p != NULL) {
|
||||
mProcVar3.field_0x300e.y = kytag04_p->mNeedDropNum;
|
||||
mProcVar4.field_0x3010 = kytag04_p->mNeedDropNum;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4255,7 +4234,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
seStartOnlyReverb(var_r29);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = param_1;
|
||||
mProcVar3.field_0x300e = param_1;
|
||||
warpModelTexScroll();
|
||||
return 1;
|
||||
}
|
||||
@@ -4277,8 +4256,8 @@ int daAlink_c::procCoWarp() {
|
||||
}
|
||||
|
||||
if (mDemo.getDemoMode() == 0x2D) {
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
}
|
||||
|
||||
if (checkWolf() && mProcVar2.field_0x300c != 0) {
|
||||
@@ -4292,12 +4271,12 @@ int daAlink_c::procCoWarp() {
|
||||
setEmitter(&field_0x3240[0], 0x9F3, ¤t.pos, &shape_angle);
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.z != 0 && field_0x3488 < 0.0f) {
|
||||
if (mProcVar5.field_0x3012 != 0 && field_0x3488 < 0.0f) {
|
||||
seStartOnlyReverb(Z2SE_WOLF_WARP_OUT);
|
||||
field_0x3488 = 1.0f;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else if (warpModelTexScroll()) {
|
||||
@@ -4305,7 +4284,7 @@ int daAlink_c::procCoWarp() {
|
||||
if (mDemo.getDemoMode() == 0x2D) {
|
||||
if (mProcVar1.field_0x300a != 0) {
|
||||
if (field_0x3174 == 4) {
|
||||
dComIfGp_setNextStage(dComIfGp_getStartStageName(), mProcVar3.field_0x300e.y,
|
||||
dComIfGp_setNextStage(dComIfGp_getStartStageName(), mProcVar4.field_0x3010,
|
||||
fopAcM_GetRoomNo(this), -1, 0.0f, 5, 1, 0,
|
||||
shape_angle.y, 1, 0);
|
||||
changeOriginalDemo();
|
||||
@@ -4321,7 +4300,7 @@ int daAlink_c::procCoWarp() {
|
||||
} else {
|
||||
return checkWaitAction();
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e.x != 0) {
|
||||
} else if (mProcVar3.field_0x300e != 0) {
|
||||
skipPortalObjWarp();
|
||||
} else {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_k_wmark.h"
|
||||
#include "JSystem/J2DGraph/J2DAnimation.h"
|
||||
#include "JSystem/J2DGraph/J2DScreen.h"
|
||||
|
||||
/* 80120580-80120634 11AEC0 00B4+00 21/21 0/0 0/0 .text
|
||||
* setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz */
|
||||
@@ -407,7 +409,7 @@ void daAlink_blur_c::traceBlur(cXyz const* param_0, cXyz const* param_1, s16 par
|
||||
static u8 texObj[32];
|
||||
|
||||
/* 804506A4-804506A8 000124 0004+00 1/1 0/0 0/0 .sdata nColor0$42525 */
|
||||
SECTION_SDATA static u8 nColor0[4] = {
|
||||
static u8 nColor0[4] = {
|
||||
0xFF,
|
||||
0xFF,
|
||||
0xFF,
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/actor/d_a_cow.h"
|
||||
|
||||
/* 800E3830-800E3858 0DE170 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallA__FP10fopAc_ac_c */
|
||||
static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor) {
|
||||
@@ -557,10 +560,10 @@ int daAlink_c::setPushPullKeepData(dBgW_Base::PushPullLabel i_label, int param_1
|
||||
if (i_label != dBgW::PPLABEL_NONE || param_1) {
|
||||
if (pp_actor->shape_angle.y != mProcVar2.field_0x300c) {
|
||||
s16 var_r28 = pp_actor->shape_angle.y - mProcVar2.field_0x300c;
|
||||
mProcVar3.field_0x300e.x += var_r28;
|
||||
mProcVar3.field_0x300e += var_r28;
|
||||
|
||||
current.pos.x = field_0x37c8.x + field_0x347c * cM_ssin(mProcVar3.field_0x300e.x);
|
||||
current.pos.z = field_0x37c8.z + field_0x347c * cM_scos(mProcVar3.field_0x300e.x);
|
||||
current.pos.x = field_0x37c8.x + field_0x347c * cM_ssin(mProcVar3.field_0x300e);
|
||||
current.pos.z = field_0x37c8.z + field_0x347c * cM_scos(mProcVar3.field_0x300e);
|
||||
shape_angle.y += var_r28;
|
||||
current.angle.y += var_r28;
|
||||
}
|
||||
@@ -672,8 +675,8 @@ static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) {
|
||||
/* 800E91C4-800E9210 0E3B04 004C+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::cancelGoronThrowEvent() {
|
||||
if (mProcID == PROC_GOAT_CATCH && mProcVar3.field_0x300e.z == 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
if (mProcID == PROC_GOAT_CATCH && mProcVar5.field_0x3012 == 0) {
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
dComIfGp_event_reset();
|
||||
}
|
||||
}
|
||||
@@ -708,7 +711,7 @@ int daAlink_c::procGoatMoveInit() {
|
||||
field_0x280c.setData(goat_p);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 1;
|
||||
}
|
||||
@@ -789,7 +792,7 @@ int daAlink_c::procGoronMoveInit() {
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -246,7 +246,7 @@ void daAlink_c::setGuardSe(dCcD_GObjInf* i_objinf) {
|
||||
}
|
||||
|
||||
/* 800DD1D4-800DD3E4 0D7B14 0210+00 1/1 0/0 0/0 .text setSmallGuard__9daAlink_cFP12dCcD_GObjInf */
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING
|
||||
void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) {
|
||||
setUpperAnimeBase(0x16);
|
||||
cXyz* dmg_vec = (cXyz*)getDamageVec(i_objinf);
|
||||
@@ -264,11 +264,6 @@ void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) {
|
||||
s16 min = -max;
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), min, max);
|
||||
}
|
||||
#else
|
||||
void daAlink_c::setSmallGuard(dCcD_GObjInf* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800DD3E4-800DD894 0D7D24 04B0+00 1/1 0/0 0/0 .text
|
||||
* procGuardSlipInit__9daAlink_cFiP12dCcD_GObjInf */
|
||||
|
||||
@@ -1013,10 +1013,10 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) {
|
||||
speed.y = 0.0f;
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3080 = 0;
|
||||
|
||||
field_0x280c.setData(param_0);
|
||||
@@ -1034,9 +1034,9 @@ int daAlink_c::procBossBodyHang() {
|
||||
setJumpMode();
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0 || !setBossBodyHangPos()) {
|
||||
if (mProcVar3.field_0x300e != 0 || !setBossBodyHangPos()) {
|
||||
if (field_0x32cc != 0) {
|
||||
if (mProcVar3.field_0x300e.x < 0) {
|
||||
if (mProcVar3.field_0x300e < 0) {
|
||||
return procBackJumpInit(0);
|
||||
} else {
|
||||
field_0x3102 = shape_angle.y;
|
||||
@@ -1084,9 +1084,9 @@ int daAlink_c::procBossBodyHang() {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
if (mEquipItem == 0x103) {
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
mProcVar4.field_0x3010 = 2;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 0xFE;
|
||||
mProcVar4.field_0x3010 = 0xFE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1105,16 +1105,16 @@ int daAlink_c::procBossBodyHang() {
|
||||
}
|
||||
|
||||
field_0x3198 = 0x16E;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3478 = 10000.0f;
|
||||
field_0x347c = 61.0f;
|
||||
setCutType(CUT_TYPE_FINISH_STAB);
|
||||
mProcVar1.field_0x300a = 3;
|
||||
} else {
|
||||
setCutType(CUT_TYPE_NM_STAB);
|
||||
mProcVar3.field_0x300e.z++;
|
||||
mProcVar5.field_0x3012++;
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 4) {
|
||||
if (mProcVar5.field_0x3012 == 4) {
|
||||
if (field_0x32cc != 0) {
|
||||
setSingleAnimeBase(ANM_DRAGON_CUT_B);
|
||||
} else {
|
||||
@@ -1124,7 +1124,7 @@ int daAlink_c::procBossBodyHang() {
|
||||
field_0x3198 = 0x16D;
|
||||
field_0x3478 = 10000.0f;
|
||||
field_0x347c = 12.0f;
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
mProcVar4.field_0x3010 = 2;
|
||||
mProcVar1.field_0x300a = 3;
|
||||
} else {
|
||||
if (field_0x32cc != 0) {
|
||||
@@ -1136,7 +1136,7 @@ int daAlink_c::procBossBodyHang() {
|
||||
field_0x3198 = 0x16C;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mStabAnm.mCheckFrame;
|
||||
field_0x347c = 10.0f;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar1.field_0x300a = 1;
|
||||
}
|
||||
}
|
||||
@@ -1174,11 +1174,11 @@ int daAlink_c::procBossBodyHang() {
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= 117.0f) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (frameCtrl->getFrame() >= 105.0f) {
|
||||
mProcVar3.field_0x300e.y = 0xFE;
|
||||
mProcVar4.field_0x3010 = 0xFE;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1404,7 +1404,7 @@ int daAlink_c::procLadderUpStartInit() {
|
||||
field_0x37c8.z = field_0x34ec.z + var_f30 * 38.0f;
|
||||
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1443,7 +1443,7 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
|
||||
field_0x30a0 = -0x0800;
|
||||
field_0x33f4 = -1.0f;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -1463,7 +1463,7 @@ int daAlink_c::procLadderUpEnd() {
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= 23.0f) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (frame_ctrl->getFrame() >= 11.0f) {
|
||||
field_0x30a0 = 0;
|
||||
field_0x33f4 = 0.0f;
|
||||
@@ -1514,7 +1514,7 @@ int daAlink_c::procLadderDownStartInit() {
|
||||
field_0x37c8.z = field_0x34ec.z - var_f30 * 48.0f;
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1535,7 +1535,7 @@ int daAlink_c::procLadderDownStart() {
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() >= 19.0f) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -1555,7 +1555,7 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
|
||||
field_0x30a0 = 0x2800;
|
||||
field_0x33f4 = 1.0f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -1645,7 +1645,7 @@ int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) {
|
||||
mNormalSpeed = 0.0f;
|
||||
speedF = 0.0f;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -2161,7 +2161,7 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
|
||||
}
|
||||
|
||||
field_0x2f99 = 2;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
|
||||
field_0x37c8.set(l_waitBaseAnime.x, l_ladderAnmBaseTransY, l_waitBaseAnime.z);
|
||||
J3DTransformInfo* trans_info = field_0x2060->getOldFrameTransInfo(0);
|
||||
@@ -2181,7 +2181,7 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
|
||||
shape_angle.y = field_0x306e + 0x8000;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
setClimbShapeOffset();
|
||||
return 1;
|
||||
}
|
||||
@@ -2196,7 +2196,7 @@ int daAlink_c::procClimbUpStart() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
field_0x2f99 = 2;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
field_0x3588 = (field_0x3588 * field_0x2060->getOldFrameRate()) +
|
||||
(field_0x37c8 * (1.0f - field_0x2060->getOldFrameRate()));
|
||||
@@ -2244,8 +2244,8 @@ int daAlink_c::procClimbDownStartInit(s16 param_0) {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x33b0 = l_ladderAnmBaseTransY;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2258,11 +2258,11 @@ int daAlink_c::procClimbDownStart() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
field_0x2f99 = 2;
|
||||
} else {
|
||||
field_0x2f99 = 0x50;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
|
||||
if (field_0x33a8 < 0.2f) {
|
||||
@@ -2334,7 +2334,7 @@ int daAlink_c::procClimbMoveUpDownInit(int param_0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
speedF = 0.0f;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
|
||||
voiceStart(Z2SE_AL_V_CLIMB_WALL);
|
||||
dComIfGp_setPlayerStatus0(0, 8);
|
||||
@@ -2421,7 +2421,7 @@ int daAlink_c::procClimbMoveSideInit() {
|
||||
speed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
field_0x3478 = M_PI / (f32)mUnderFrameCtrl[0].getEnd();
|
||||
field_0x347c = current.pos.y + 150.0f;
|
||||
|
||||
@@ -2498,7 +2498,7 @@ int daAlink_c::procClimbWaitInit(int param_0, int param_1) {
|
||||
|
||||
field_0x2f99 = 10;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
if (param_0) {
|
||||
if (field_0x2f98 == 0) {
|
||||
@@ -2771,8 +2771,33 @@ int daAlink_c::procRoofHangStart() {
|
||||
/* 80100BB4-80100D38 0FB4F4 0184+00 4/4 0/0 0/0 .text procRoofHangWaitInit__9daAlink_cFi
|
||||
*/
|
||||
int daAlink_c::procRoofHangWaitInit(int param_0) {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
if (!commonProcInitNotSameProc(PROC_ROOF_HANG_WAIT)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (field_0x2f98 == 0 || field_0x2f98 == 1) {
|
||||
if (field_0x2f98 == 0) {
|
||||
current.pos.x += 25.0f * cM_ssin(this->shape_angle.y);
|
||||
current.pos.z += 25.0f * cM_scos(this->shape_angle.y);
|
||||
|
||||
field_0x2060->getOldFrameTransInfo(0)->mTranslate.z -= 25.0f;
|
||||
} else {
|
||||
current.pos.x -= 25.0f * cM_ssin(this->shape_angle.y);
|
||||
current.pos.z -= 25.0f * cM_scos(this->shape_angle.y);
|
||||
|
||||
field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += 25.0f;
|
||||
}
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.field_0x1C, daAlinkHIO_roofHang_c0::m.field_0x20);
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
dComIfGp_setPlayerStatus1(0, 0x100000);
|
||||
mProcVar0.field_0x3008 = param_0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80100D38-80100DA4 0FB678 006C+00 1/0 0/0 0/0 .text procRoofHangWait__9daAlink_cFv */
|
||||
|
||||
+279
-56
@@ -3,7 +3,11 @@
|
||||
* Player Clawshot action handling
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_b_dr.h"
|
||||
#include "d/actor/d_a_obj_swhang.h"
|
||||
#include "d/actor/d_a_obj_chandelier.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
|
||||
enum {
|
||||
HS_MODE_NONE_e,
|
||||
@@ -14,9 +18,195 @@ enum {
|
||||
};
|
||||
|
||||
/* 80107900-801083C8 102240 0AC8+00 1/0 0/0 0/0 .text draw__Q29daAlink_c14hsChainShape_cFv */
|
||||
extern "C" void draw__Q29daAlink_c14hsChainShape_cFv() {
|
||||
// asm void daAlink_c::hsChainShape_c::draw() {
|
||||
// NONMATCHING
|
||||
void daAlink_c::hsChainShape_c::draw() {
|
||||
daAlink_c* temp_r3 = (daAlink_c*)getUserArea();
|
||||
J3DModelData* sp60 = temp_r3->getItemModelData();
|
||||
J3DMaterial* sp5C = sp60->getMaterialNodePointer(0);
|
||||
daAlink_hsChainLight_c* temp_r29 = (daAlink_hsChainLight_c*)&temp_r3->tevStr;
|
||||
|
||||
j3dSys.setVtxPos(sp60->getVtxPosArray());
|
||||
j3dSys.setVtxNrm(sp60->getVtxNrmArray());
|
||||
j3dSys.setVtxCol(sp60->getVtxColorArray(0));
|
||||
J3DShape::resetVcdVatCache();
|
||||
|
||||
sp5C->loadSharedDL();
|
||||
sp5C->getShape()->loadPreDrawSetting();
|
||||
|
||||
GXColor sp58;
|
||||
sp58.r = temp_r29->mColorC0.r;
|
||||
sp58.g = temp_r29->mColorC0.g;
|
||||
sp58.b = temp_r29->mColorC0.b;
|
||||
sp58.a = temp_r29->mColorC0.a;
|
||||
|
||||
GXSetChanAmbColor(GX_COLOR0A0, sp58);
|
||||
GXSetChanMatColor(GX_COLOR0A0, g_whiteColor);
|
||||
|
||||
dKy_setLight_again();
|
||||
dKy_GxFog_tevstr_set(temp_r29);
|
||||
GXLoadLightObjImm(temp_r29->getLightObj(), GX_LIGHT0);
|
||||
|
||||
if (temp_r3->checkIronBallEquip()) {
|
||||
cXyz* sp54 = temp_r3->getIronBallChainPos();
|
||||
csXyz* sp50 = temp_r3->getIronBallChainAngle();
|
||||
sp54++;
|
||||
sp50++;
|
||||
|
||||
for (int i = 0; i < 101; i++, sp54++, sp50++) {
|
||||
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
|
||||
mDoMtx_stack_c::transM(*sp54);
|
||||
mDoMtx_stack_c::ZXYrotM(*sp50);
|
||||
mDoMtx_stack_c::scaleM(2.0f, 2.0f, 2.0f);
|
||||
|
||||
GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
|
||||
sp5C->getShape()->simpleDrawCache();
|
||||
}
|
||||
|
||||
cXyz spC8;
|
||||
cXyz spBC;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
cXyz* sp48;
|
||||
csXyz* sp44;
|
||||
|
||||
s16 sp14;
|
||||
s16 sp12;
|
||||
s16 sp10;
|
||||
s16 spE;
|
||||
|
||||
if (i == 0) {
|
||||
sp48 = temp_r3->getIronBallChainPos() + temp_r3->getIronBallHandChainNum();
|
||||
spC8 = temp_r3->getIronBallChainHandRootPos() - *sp48;
|
||||
|
||||
sp44 = temp_r3->getIronBallChainAngle() + temp_r3->getIronBallHandChainNum();
|
||||
spE = 0x3000;
|
||||
} else {
|
||||
sp48 = temp_r3->getIronBallChainPos();
|
||||
mDoMtx_stack_c::transS(*(temp_r3->getIronBallChainPos() + 1));
|
||||
mDoMtx_stack_c::ZXYrotM(*(temp_r3->getIronBallChainAngle() + 1));
|
||||
mDoMtx_stack_c::multVec(&l_ironBallChainVec, &spC8);
|
||||
spC8 -= *sp48;
|
||||
|
||||
sp44 = temp_r3->getIronBallChainAngle() + 1;
|
||||
spE = -0x3000;
|
||||
}
|
||||
|
||||
sp10 = sp44->y;
|
||||
sp14 = sp44->z + spE;
|
||||
f32 var_f29 = spC8.abs();
|
||||
|
||||
spBC = *sp48;
|
||||
|
||||
if (var_f29 > 5.0f) {
|
||||
if (spC8.absXZ() >= 1.0f) {
|
||||
sp10 = spC8.atan2sX_Z();
|
||||
}
|
||||
|
||||
sp12 = spC8.atan2sY_XZ();
|
||||
cXyz spB0 = spC8 * (10.0f / var_f29);
|
||||
|
||||
while (var_f29 > 5.0f) {
|
||||
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
|
||||
mDoMtx_stack_c::transM(spBC);
|
||||
mDoMtx_stack_c::ZXYrotM(sp12, sp10, sp14);
|
||||
mDoMtx_stack_c::scaleM(2.0f, 2.0f, 2.0f);
|
||||
|
||||
GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
|
||||
sp5C->getShape()->simpleDrawCache();
|
||||
|
||||
spBC += spB0;
|
||||
var_f29 -= 10.0f;
|
||||
sp14 += spE;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const cXyz& sp3C = temp_r3->getHsChainRootPos();
|
||||
const cXyz& sp38 = temp_r3->getHsChainTopPos();
|
||||
cXyz spA4 = sp3C - sp38;
|
||||
|
||||
f32 temp_f31 = spA4.abs();
|
||||
f32 var_f30;
|
||||
cXyz sp98;
|
||||
csXyz sp6C;
|
||||
|
||||
if (temp_f31 > 1.0f) {
|
||||
spA4 *= (1.0f / temp_f31);
|
||||
var_f30 = 0.0f;
|
||||
|
||||
sp98 = sp38;
|
||||
sp6C.set(spA4.atan2sY_XZ(), spA4.atan2sX_Z(), 0);
|
||||
sp98 = sp38;
|
||||
|
||||
csXyz sp64(sp6C);
|
||||
|
||||
f32 sp34 = M_PI / temp_f31;
|
||||
|
||||
f32 temp_f27;
|
||||
f32 var_f26 = 0.0f;
|
||||
f32 var_f28;
|
||||
|
||||
var_f28 = 2.5f * temp_r3->getHookshotStopTime();
|
||||
if (temp_r3->getHookshotStopTime() & 1) {
|
||||
var_f28 *= -1.0f;
|
||||
}
|
||||
|
||||
while (temp_f31 > var_f30) {
|
||||
temp_f27 = var_f28 * cM_fsin(sp34 * var_f30);
|
||||
s16 spC = cM_atan2s(temp_f27 - var_f26, 5.0f);
|
||||
sp64.x = sp6C.x + spC;
|
||||
|
||||
mDoMtx_stack_c::transS(sp98);
|
||||
mDoMtx_stack_c::ZXYrotM(sp64);
|
||||
|
||||
static Vec hsVec = {0.0f, 0.0f, 5.0f};
|
||||
mDoMtx_stack_c::multVec(&hsVec, &sp98);
|
||||
|
||||
mDoMtx_stack_c::revConcat(j3dSys.getViewMtx());
|
||||
|
||||
GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
|
||||
sp5C->getShape()->simpleDrawCache();
|
||||
|
||||
sp64.z += 0x3000;
|
||||
|
||||
var_f26 = temp_f27;
|
||||
var_f30 += fabsf(cM_scos(spC)) * 5.0f;
|
||||
}
|
||||
}
|
||||
|
||||
const cXyz& sp30 = temp_r3->getHsSubChainRootPos();
|
||||
const cXyz& sp2C = temp_r3->getHsSubChainTopPos();
|
||||
spA4 = sp30 - sp2C;
|
||||
|
||||
f32 temp_f1 = spA4.abs();
|
||||
if (temp_f1 > 1.0f) {
|
||||
spA4 *= (1.0f / temp_f1);
|
||||
var_f30 = 0.0f;
|
||||
|
||||
sp98 = sp2C;
|
||||
sp6C.set(spA4.atan2sY_XZ(), spA4.atan2sX_Z(), 0);
|
||||
|
||||
while (temp_f1 > var_f30) {
|
||||
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
|
||||
mDoMtx_stack_c::transM(sp98);
|
||||
mDoMtx_stack_c::ZXYrotM(sp6C);
|
||||
|
||||
GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0);
|
||||
|
||||
sp5C->getShape()->simpleDrawCache();
|
||||
|
||||
sp98 += spA4 * 5.0f;
|
||||
sp6C.z += 0x3000;
|
||||
var_f30 += 5.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 801083C8-8010859C 102D08 01D4+00 1/1 0/0 0/0 .text
|
||||
@@ -46,7 +236,6 @@ void daAlink_c::hookshotAtHitCallBack(dCcD_GObjInf* i_atObjInf, fopAc_ac_c* i_tg
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 8010859C-801085BC 102EDC 0020+00 1/1 0/0 0/0 .text
|
||||
* daAlink_hookshotAtHitCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
|
||||
static void daAlink_hookshotAtHitCallBack(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_atObjInf,
|
||||
@@ -228,7 +417,7 @@ void daAlink_c::setHookshotModel() {
|
||||
field_0x0710 = initModel(mHeldItemModel->getModelData(), 0x80000, 0);
|
||||
field_0x0714 = initModel(mpHookTipModel->getModelData(), 0x80000, 0);
|
||||
|
||||
mpHookKusariModelData = loadAramBmd(0x317, 0x1000);
|
||||
mpItemModelData = loadAramBmd(0x317, 0x1000);
|
||||
mpHookChain = new hsChainShape_c();
|
||||
mpHookSound = new Z2SoundObjSimple();
|
||||
|
||||
@@ -546,7 +735,6 @@ int daAlink_c::checkNextActionHookshot() {
|
||||
|
||||
/* 801097A0-80109890 1040E0 00F0+00 2/2 0/0 0/0 .text setHookshotReturnEnd__9daAlink_cFv
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::setHookshotReturnEnd() {
|
||||
resetHookshotMode();
|
||||
cancelItemUseQuake(0);
|
||||
@@ -563,17 +751,58 @@ void daAlink_c::setHookshotReturnEnd() {
|
||||
|
||||
mFastShotTime = 0;
|
||||
}
|
||||
#else
|
||||
void daAlink_c::setHookshotReturnEnd() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80109890-80109AAC 1041D0 021C+00 3/3 0/0 0/0 .text setHookshotHangMoveBGCollect__9daAlink_cFv
|
||||
*/
|
||||
int daAlink_c::setHookshotHangMoveBGCollect() {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
cBgS_PolyInfo* poly;
|
||||
if (mItemMode == 4) {
|
||||
poly = &mPolyInfo3;
|
||||
} else {
|
||||
poly = &mPolyInfo2;
|
||||
}
|
||||
|
||||
fopAc_ac_c* carry_actor = mCargoCarryAcKeep.getActor();
|
||||
|
||||
if (carry_actor != NULL) {
|
||||
cXyz sp28(mIronBallBgChkPos);
|
||||
mDoMtx_stack_c::transS(carry_actor->current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(carry_actor->shape_angle);
|
||||
mDoMtx_stack_c::multVec(&field_0x37c8, &mIronBallBgChkPos);
|
||||
|
||||
current.pos += mIronBallBgChkPos - sp28;
|
||||
shape_angle.y += (s16)(mProcVar0.field_0x3008 - carry_actor->shape_angle.y);
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar0.field_0x3008 = carry_actor->shape_angle.y;
|
||||
} else if (dComIfG_Bgsp().ChkPolySafe(*poly)) {
|
||||
if (!checkHookshotStickBG(*poly)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dComIfG_Bgsp().ChkMoveBG(*poly)) {
|
||||
dComIfG_Bgsp().MoveBgTransPos(*poly, 1, ¤t.pos, ¤t.angle, &shape_angle);
|
||||
|
||||
csXyz sp8(0, field_0x3022, 0);
|
||||
dComIfG_Bgsp().MoveBgTransPos(*poly, 1, &mIronBallBgChkPos, NULL, &sp8);
|
||||
field_0x3022 = sp8.y;
|
||||
|
||||
s16 movebg_name = getMoveBGActorName(*poly, 1);
|
||||
if (movebg_name == PROC_Obj_SwHang) {
|
||||
daObjSwHang_c* var_r26 = (daObjSwHang_c*)dComIfG_Bgsp().GetActorPointer(*poly);
|
||||
var_r26->setHangPlayer();
|
||||
|
||||
f32 prev_y = mIronBallBgChkPos.y;
|
||||
mIronBallBgChkPos.y = var_r26->getHangPos().y;
|
||||
current.pos.y += mIronBallBgChkPos.y - prev_y;
|
||||
} else if (movebg_name == PROC_Obj_Chandelier) {
|
||||
((daObjChandelier_c*)dComIfG_Bgsp().GetActorPointer(*poly))->moveHookOn();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80109AAC-80109BDC 1043EC 0130+00 2/2 0/0 0/0 .text setHookshotTopPosFly__9daAlink_cFv
|
||||
@@ -612,8 +841,7 @@ static u8 lit_29722[12];
|
||||
static Vec l_hookSnowSandHitScale;
|
||||
|
||||
/* 80109BDC-8010B2DC 10451C 1700+00 1/1 0/0 0/0 .text setHookshotPos__9daAlink_cFv */
|
||||
// almost, just stack order
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - almost, just cXyz stack order
|
||||
void daAlink_c::setHookshotPos() {
|
||||
mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c0));
|
||||
mDoMtx_stack_c::transM(-2.0f, 1.0f, 1.0f);
|
||||
@@ -744,13 +972,13 @@ void daAlink_c::setHookshotPos() {
|
||||
if (checkHookshotWait() || mItemMode == 2) {
|
||||
csXyz* var_r28;
|
||||
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_ROOF_SHOOT) {
|
||||
var_r28 = &mProcVar3.field_0x300e.x;
|
||||
var_r28 = (csXyz*)&mProcVar3.field_0x300e;
|
||||
} else {
|
||||
var_r28 = &mBodyAngle;
|
||||
}
|
||||
|
||||
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT) {
|
||||
field_0x301e = mProcVar3.field_0x300e.y;
|
||||
field_0x301e = mProcVar4.field_0x3010;
|
||||
} else {
|
||||
field_0x301e = (s16)(shape_angle.y + mBodyAngle.y);
|
||||
}
|
||||
@@ -807,12 +1035,12 @@ void daAlink_c::setHookshotPos() {
|
||||
mHookshotTopPos = field_0x381c;
|
||||
|
||||
fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor();
|
||||
if (targetAc_p != NULL && (targetAc_p->mStatus & 0x280000)) {
|
||||
if (targetAc_p != NULL && (targetAc_p->actor_status & 0x280000)) {
|
||||
mHookTargetAcKeep.setData(targetAc_p);
|
||||
mIronBallCenterPos = mHookshotTopPos - targetAc_p->current.pos;
|
||||
setHookshotCatchNow();
|
||||
|
||||
if (targetAc_p->mStatus & 0x200000) {
|
||||
if (targetAc_p->actor_status & 0x200000) {
|
||||
mItemMode = 5;
|
||||
field_0x316c.set(field_0x301c, field_0x301e, 0);
|
||||
mDoMtx_stack_c::ZrotS(-targetAc_p->shape_angle.z);
|
||||
@@ -1003,11 +1231,6 @@ void daAlink_c::setHookshotPos() {
|
||||
field_0x0714->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
field_0x0714->calc();
|
||||
}
|
||||
#else
|
||||
void daAlink_c::setHookshotPos() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 8010B2DC-8010B35C 105C1C 0080+00 2/2 0/0 0/0 .text setHookshotRoofWaitAnime__9daAlink_cFv */
|
||||
void daAlink_c::setHookshotRoofWaitAnime() {
|
||||
@@ -1124,10 +1347,10 @@ void daAlink_c::initHookshotRoofWaitActor(fopAc_ac_c* i_actor) {
|
||||
mProcVar0.field_0x3008 = i_actor->shape_angle.y;
|
||||
|
||||
fopAcM_setHookCarryNow(i_actor);
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
} else {
|
||||
mCargoCarryAcKeep.clearData();
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1184,7 +1407,7 @@ int daAlink_c::checkLandHookshotHang() {
|
||||
/* 8010B96C-8010BA6C 1062AC 0100+00 3/3 0/0 0/0 .text commonHookshotRoofWait__9daAlink_cFv */
|
||||
int daAlink_c::commonHookshotRoofWait() {
|
||||
setJumpMode();
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
mCargoCarryAcKeep.setActor();
|
||||
fopAc_ac_c* carryAc_p = mCargoCarryAcKeep.getActor();
|
||||
|
||||
@@ -1349,7 +1572,7 @@ int daAlink_c::procHookshotFlyInit() {
|
||||
mProcVar1.field_0x300a = 4;
|
||||
field_0x2f99 = 0x50;
|
||||
mProcVar2.field_0x300c = mItemMode;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
procHookshotFly();
|
||||
return 1;
|
||||
@@ -1400,9 +1623,9 @@ int daAlink_c::procHookshotFly() {
|
||||
|
||||
current.pos += field_0x37d4;
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) != 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else if (mProcVar5.field_0x3012 != 0 && !itemButton()) {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
if (mItemMode != 5 && mItemMode != HS_MODE_FLY_e) {
|
||||
@@ -1463,7 +1686,7 @@ int daAlink_c::procHookshotFly() {
|
||||
procFallInit(1, 5.0f);
|
||||
field_0x2f99 = 0x70;
|
||||
} else if (targetAc_name == PROC_E_PH || targetAc_name == PROC_B_DR || var_r29) {
|
||||
procHookshotRoofWaitInit(1, targetAc_p, mProcVar3.field_0x300e.z);
|
||||
procHookshotRoofWaitInit(1, targetAc_p, mProcVar5.field_0x3012);
|
||||
} else if (var_r28 && dComIfG_Bgsp().GetMonkeyBarsCode(mPolyInfo2)) {
|
||||
cXyz sp88;
|
||||
mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0);
|
||||
@@ -1472,9 +1695,9 @@ int daAlink_c::procHookshotFly() {
|
||||
|
||||
procRoofHangStartInit(mPolyInfo2, sp88, 0);
|
||||
} else if (var_r28 && var_r27) {
|
||||
procHookshotRoofWaitInit(1, NULL, mProcVar3.field_0x300e.z);
|
||||
procHookshotRoofWaitInit(1, NULL, mProcVar5.field_0x3012);
|
||||
} else if (var_r28 && field_0x2f91 != 3 && fabsf(poly.mNormal.y) < 0.05f) {
|
||||
procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), mProcVar3.field_0x300e.z);
|
||||
procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), mProcVar5.field_0x3012);
|
||||
} else {
|
||||
procFallInit(1, 5.0f);
|
||||
field_0x2f99 = 0x70;
|
||||
@@ -1542,7 +1765,7 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
}
|
||||
|
||||
field_0x2b98 = 6.5f;
|
||||
mProcVar3.field_0x300e.z = param_2;
|
||||
mProcVar5.field_0x3012 = param_2;
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x10000);
|
||||
field_0x814.SetWeight(255);
|
||||
@@ -1589,21 +1812,21 @@ int daAlink_c::procHookshotRoofWait() {
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT)) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else if (mProcVar5.field_0x3012 != 0 && !itemButton()) {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || mProcVar3.field_0x300e.z != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
((checkInputOnR() || mProcVar5.field_0x3012 != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCheckFrame))
|
||||
{
|
||||
setHookshotRoofWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else if (!checkHookshotRoofLv7Boss()) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar3.field_0x300e.z != 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar5.field_0x3012 != 0) {
|
||||
return procHookshotRoofShootInit(mCargoCarryAcKeep.getActor());
|
||||
}
|
||||
hookshotRoofTurn();
|
||||
@@ -1640,7 +1863,7 @@ int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) {
|
||||
|
||||
field_0x814.SetWeight(255);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e = mBodyAngle.x;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1668,7 +1891,7 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
}
|
||||
|
||||
if (!checkUpperItemActionHookshot()) {
|
||||
mBodyAngle.x = mProcVar3.field_0x300e.x;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e;
|
||||
|
||||
if (!checkAttentionLock() && mFastShotTime == 0) {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -1703,7 +1926,7 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e = mBodyAngle.x;
|
||||
mBodyAngle.x = 0;
|
||||
}
|
||||
|
||||
@@ -1817,7 +2040,7 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
setHookshotHangMoveBGCollect();
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.z = param_2;
|
||||
mProcVar5.field_0x3012 = param_2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1866,20 +2089,20 @@ int daAlink_c::procHookshotWallWait() {
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT)) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else if (mProcVar5.field_0x3012 != 0 && !itemButton()) {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || mProcVar3.field_0x300e.z != 0) &&
|
||||
((checkInputOnR() || mProcVar5.field_0x3012 != 0) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCheckFrame))
|
||||
{
|
||||
setHookshotWallWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar3.field_0x300e.z != 0) {
|
||||
} else if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar5.field_0x3012 != 0) {
|
||||
return procHookshotWallShootInit();
|
||||
}
|
||||
|
||||
@@ -1909,9 +2132,9 @@ int daAlink_c::procHookshotWallShootInit() {
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y;
|
||||
field_0x310c = mProcVar3.field_0x300e.y;
|
||||
mProcVar3.field_0x300e = mBodyAngle.x;
|
||||
mProcVar4.field_0x3010 = shape_angle.y;
|
||||
field_0x310c = mProcVar4.field_0x3010;
|
||||
setHookshotReadyMaterial();
|
||||
return 1;
|
||||
}
|
||||
@@ -1938,8 +2161,8 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
BOOL var_r31 = false;
|
||||
if (!checkUpperItemActionHookshot()) {
|
||||
s16 old_angle = shape_angle.y;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e.x;
|
||||
shape_angle.y = mProcVar3.field_0x300e.y;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e;
|
||||
shape_angle.y = mProcVar4.field_0x3010;
|
||||
|
||||
if (!checkAttentionLock() && mFastShotTime == 0) {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -1986,10 +2209,10 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
setHookshotSight();
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e = mBodyAngle.x;
|
||||
mBodyAngle.x = 0;
|
||||
field_0x310c = shape_angle.y;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y;
|
||||
mProcVar4.field_0x3010 = shape_angle.y;
|
||||
shape_angle.y = old_angle;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "d/actor/d_a_hozelda.h"
|
||||
#include "d/actor/d_a_e_wb.h"
|
||||
#include "d/actor/d_a_obj_iceleaf.h"
|
||||
#include "d/actor/d_a_spinner.h"
|
||||
|
||||
/* 800EC724-800EC758 0E7064 0034+00 3/3 0/0 0/0 .text daAlink_searchBoar__FP10fopAc_ac_cPv */
|
||||
static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void*) {
|
||||
@@ -80,8 +81,7 @@ int daAlink_c::getReinRideDirection() {
|
||||
|
||||
/* 800EC8F8-800ECA3C 0E7238 0144+00 1/1 0/0 0/0 .text checkReinRideBgCheck__9daAlink_cFv
|
||||
*/
|
||||
// issue with sp38 member setting
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - issue with sp38 member setting
|
||||
int daAlink_c::checkReinRideBgCheck() {
|
||||
int direction = getReinRideDirection();
|
||||
|
||||
@@ -129,12 +129,6 @@ int daAlink_c::checkReinRideBgCheck() {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::checkReinRideBgCheck() {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800ECA3C-800ECAAC 0E737C 0070+00 3/3 0/0 0/0 .text commonInitForceRideRein__9daAlink_cFv */
|
||||
void daAlink_c::commonInitForceRideRein() {
|
||||
@@ -439,7 +433,7 @@ int daAlink_c::setSyncBoarRunPos() {
|
||||
shape_angle.z = sp28.x;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (mProcID == PROC_BOAR_RUN && mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcID == PROC_BOAR_RUN && mProcVar3.field_0x300e != 0) {
|
||||
mUnderFrameCtrl[0].setFrame(e_wb_p->nowAnimeFrame());
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(e_wb_p->nowAnimeFrame());
|
||||
}
|
||||
@@ -678,8 +672,7 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
|
||||
|
||||
/* 800EE64C-800EE918 0E8F8C 02CC+00 1/1 0/0 0/0 .text setSyncBoar__9daAlink_cFi */
|
||||
// regalloc, equivalent?
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - regalloc, equivalent? NONMATCHING
|
||||
int daAlink_c::setSyncBoar(int param_0) {
|
||||
e_wb_class* e_wb_p = static_cast<e_wb_class*>(mRideAcKeep.getActor());
|
||||
BOOL mode_1 = checkModeFlg(1);
|
||||
@@ -740,12 +733,6 @@ int daAlink_c::setSyncBoar(int param_0) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::setSyncBoar(int param_0) {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800EE918-800EEAE8 0E9258 01D0+00 12/12 0/0 0/0 .text setSyncRide__9daAlink_cFi */
|
||||
int daAlink_c::setSyncRide(int param_0) {
|
||||
@@ -838,8 +825,7 @@ int daAlink_c::setRideSubjectAngle(s16 param_0) {
|
||||
}
|
||||
|
||||
/* 800EF050-800EF0E8 0E9990 0098+00 7/7 0/0 0/0 .text setBodyAngleRideReadyAnime__9daAlink_cFv */
|
||||
// missing mr, probably issue with cLib_minMaxLimit implementation
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - missing mr, probably issue with cLib_minMaxLimit implementation
|
||||
void daAlink_c::setBodyAngleRideReadyAnime() {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
|
||||
@@ -854,11 +840,6 @@ void daAlink_c::setBodyAngleRideReadyAnime() {
|
||||
|
||||
daPy_addCalcShort(&mBodyAngle.y, angle, 4, 0xC00, 0x180);
|
||||
}
|
||||
#else
|
||||
void daAlink_c::setBodyAngleRideReadyAnime() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800EF0E8-800EF198 0E9A28 00B0+00 1/1 0/0 0/0 .text
|
||||
* checkHorseGetOffWallCheck__9daAlink_cFP4cXyzP4cXyzs */
|
||||
@@ -995,20 +976,13 @@ int daAlink_c::checkNextActionHorse() {
|
||||
}
|
||||
|
||||
/* 800EF598-800EF6B0 0E9ED8 0118+00 2/2 0/0 0/0 .text checkHorseGetOff__9daAlink_cFv */
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - regalloc
|
||||
BOOL daAlink_c::checkHorseGetOff() {
|
||||
return (checkHorseRide() && dComIfGp_getHorseActor() != NULL &&
|
||||
dComIfGp_getHorseActor()->checkGetOff()) ||
|
||||
(checkBoarRide() && static_cast<e_wb_class*>(mRideAcKeep.getActor()) != NULL &&
|
||||
static_cast<e_wb_class*>(mRideAcKeep.getActor())->checkGetOff());
|
||||
}
|
||||
#else
|
||||
BOOL daAlink_c::checkHorseGetOff() {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800EF6B0-800EF884 0E9FF0 01D4+00 3/3 0/0 0/0 .text checkHorseGetOffAndSetDoStatus__9daAlink_cFv
|
||||
*/
|
||||
@@ -1248,7 +1222,7 @@ int daAlink_c::procHorseCutTurnInit() {
|
||||
setSyncRide(1);
|
||||
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.field_0x50;
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f);
|
||||
mProcVar3.field_0x300e.y = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
|
||||
mProcVar4.field_0x3010 = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
|
||||
voiceStart(Z2SE_AL_V_KAITEN);
|
||||
setCutWaterDropEffect();
|
||||
setHorseZeldaDamage();
|
||||
@@ -1629,12 +1603,12 @@ int daAlink_c::procHorseRunInit() {
|
||||
setSingleAnimeBaseMorf(ANM_HORSE_TAME_WAIT_B, -1.0f);
|
||||
setSyncHorsePos();
|
||||
field_0x2fab = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
field_0x3478 = 1000.0f - cM_rndF(500.0f);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 30;
|
||||
mProcVar3.field_0x300e = 30;
|
||||
field_0x3004 = 0;
|
||||
field_0x3002 = 0;
|
||||
mDoAud_changeSubBgmStatus(2);
|
||||
@@ -1729,11 +1703,11 @@ int daAlink_c::procBoarRunInit() {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
resetUnderAnime(UNDER_2, -1.0f);
|
||||
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3478 = 3000.0f - cM_rndF(1500.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_HORSE_TAME_WAIT_A_TO_B, 1.0f, 4.0f);
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
setSyncBoarPos();
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
* Player Iron Boots action handling
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_tag_magne.h"
|
||||
|
||||
/* 800E23FC-800E243C 0DCD3C 0040+00 6/6 0/0 0/0 .text concatMagneBootMtx__9daAlink_cFv */
|
||||
void daAlink_c::concatMagneBootMtx() {
|
||||
if (checkMagneBootsOn()) {
|
||||
|
||||
+109
-109
@@ -8,7 +8,7 @@
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
/* 80105A84-80105A98 1003C4 0014+00 1/1 0/0 0/0 .text daAlink_searchIceLeaf__FP10fopAc_ac_cPv */
|
||||
static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* param_1) {
|
||||
static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* i_data) {
|
||||
if (fopAcM_GetName(i_actor) == PROC_Obj_IceLeaf) {
|
||||
return i_actor;
|
||||
}
|
||||
@@ -18,14 +18,14 @@ static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* param_1) {
|
||||
|
||||
/* 80105A98-80105ABC 1003D8 0024+00 3/3 0/0 0/0 .text checkSnowCode__9daAlink_cCFv */
|
||||
bool daAlink_c::checkSnowCode() const {
|
||||
return field_0x2fa8 == 6 || field_0x2fa8 == 5;
|
||||
return mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW;
|
||||
}
|
||||
|
||||
/* 80105ABC-80105B10 1003FC 0054+00 1/1 0/0 1/1 .text
|
||||
* checkSnowCodePolygon__9daAlink_cFR13cBgS_PolyInfo */
|
||||
bool daAlink_c::checkSnowCodePolygon(cBgS_PolyInfo& i_poly) {
|
||||
int code = dComIfG_Bgsp().GetSpecialCode(i_poly);
|
||||
return code == 6 || code == 5;
|
||||
return code == dBgW_SPCODE_HEAVY_SNOW || code == dBgW_SPCODE_LIGHT_SNOW;
|
||||
}
|
||||
|
||||
/* 80105B10-80105B58 100450 0048+00 2/2 0/0 0/0 .text checkBoardRestart__9daAlink_cFv */
|
||||
@@ -34,7 +34,7 @@ bool daAlink_c::checkBoardRestart() {
|
||||
}
|
||||
|
||||
/* 80105B58-80106534 100498 09DC+00 7/7 0/0 0/0 .text boardCommon__9daAlink_cFi */
|
||||
int daAlink_c::boardCommon(int param_0) {
|
||||
int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
int sp18 = abs(shape_angle.x);
|
||||
int var_r25 = abs(shape_angle.z);
|
||||
if (sp18 > var_r25) {
|
||||
@@ -72,17 +72,17 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
|
||||
s16 var_r27;
|
||||
if (mLinkAcch.i_ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
cM3dGPla sp1C;
|
||||
dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp1C);
|
||||
cM3dGPla poly;
|
||||
dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &poly);
|
||||
|
||||
mProcVar3.field_0x300e.x = cM_atan2s(sp1C.mNormal.absXZ(), sp1C.mNormal.y);
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
mProcVar3.field_0x300e = cM_atan2s(poly.mNormal.absXZ(), poly.mNormal.y);
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
var_r27 = shape_angle.y;
|
||||
} else {
|
||||
var_r27 = sp1C.mNormal.atan2sX_Z();
|
||||
var_r27 = poly.mNormal.atan2sX_Z();
|
||||
}
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
var_r27 = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -95,18 +95,18 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
int temp_r26 = abs(mStickAngle);
|
||||
|
||||
s16 var_r24;
|
||||
if (checkInputOnR() && param_0) {
|
||||
if (checkInputOnR() && i_canMove) {
|
||||
var_r24 = 1024.0f * field_0x33ac * cM_ssin(mStickAngle);
|
||||
|
||||
if (temp_r26 > 0x6000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT) {
|
||||
f32 temp_f29 = field_0x33ac * cM_scos((0x8000 - temp_r26) * 2);
|
||||
f32 var_f28 = temp_f29;
|
||||
f32 speed_step = temp_f29;
|
||||
|
||||
if (var_f28 < 0.15f) {
|
||||
var_f28 = 0.15f;
|
||||
if (speed_step < 0.15f) {
|
||||
speed_step = 0.15f;
|
||||
}
|
||||
|
||||
cLib_addCalc(&mNormalSpeed, 0.0f, 0.5f, var_f28, 0.1f);
|
||||
cLib_addCalc(&mNormalSpeed, 0.0f, 0.5f, speed_step, 0.1f);
|
||||
|
||||
if (mNormalSpeed > 5.0f) {
|
||||
var_f30 = temp_f29;
|
||||
@@ -115,11 +115,11 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
}
|
||||
|
||||
if (checkZeroSpeedF() && temp_r26 > 0x7000 && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2)) {
|
||||
if (mProcVar3.field_0x300e.x <= 910.0f && checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mProcVar3.field_0x300e <= 910.0f && checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && mLinkAcch.i_ChkGroundHit()) {
|
||||
return procBoardTurnInit();
|
||||
}
|
||||
}
|
||||
} else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && (mProcVar3.field_0x300e.x < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
|
||||
} else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && (mProcVar3.field_0x300e < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
|
||||
if (mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
return procBoardRowInit();
|
||||
}
|
||||
@@ -128,25 +128,25 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
var_r24 = 0;
|
||||
}
|
||||
|
||||
u32 sp10 = Z2SE_AL_SNOBO_RIDE;
|
||||
u32 sound = Z2SE_AL_SNOBO_RIDE;
|
||||
if (field_0x2f8c == 0xB) {
|
||||
f32 spC = mNowAnmPackUnder[1].getRatio();
|
||||
cLib_addCalc(&spC, var_f30, 0.5f, 0.35f, 0.1f);
|
||||
setDoubleAnimeBlendRatio(spC);
|
||||
|
||||
if (spC > 0.8f) {
|
||||
sp10 = Z2SE_AL_SNOBO_BREAK;
|
||||
sound = Z2SE_AL_SNOBO_BREAK;
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkModeFlg(2)) {
|
||||
seStartOnlyReverbLevel(sp10);
|
||||
seStartOnlyReverbLevel(sound);
|
||||
}
|
||||
|
||||
if (mProcID == PROC_BOARD_TURN) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
} else {
|
||||
cLib_addCalcAngleS(&mProcVar2.field_0x300c, var_r24, 0x1E, 0x800, 0x10);
|
||||
cLib_addCalcAngleS(&mProcVar2.field_0x300c, var_r24, 30, 0x800, 0x10);
|
||||
|
||||
if (!checkModeFlg(2)) {
|
||||
current.angle.y += mProcVar2.field_0x300c;
|
||||
@@ -155,7 +155,7 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
shape_angle.y = current.angle.y;
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&field_0x2fee, -var_r24 * 6, 0xA, 0x800, 0x40);
|
||||
cLib_addCalcAngleS(&field_0x2fee, -var_r24 * 6, 10, 0x800, 0x40);
|
||||
shape_angle.z = field_0x2fee >> 1;
|
||||
mBodyAngle.z = shape_angle.z;
|
||||
|
||||
@@ -164,8 +164,8 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
offModeFlg(2);
|
||||
speed.y = 0.0f;
|
||||
} else {
|
||||
if (mProcVar3.field_0x300e.x > 910.0f && (mProcID != PROC_BOARD_ROW || !(mProcVar3.field_0x300e.x < 2000.0f))) {
|
||||
f32 var_f25 = (f32)mProcVar3.field_0x300e.x / (f32)field_0x3122;
|
||||
if (mProcVar3.field_0x300e > 910.0f && (mProcID != PROC_BOARD_ROW || !(mProcVar3.field_0x300e < 2000.0f))) {
|
||||
f32 var_f25 = (f32)mProcVar3.field_0x300e / (f32)field_0x3122;
|
||||
if (var_f25 > 1.0f) {
|
||||
var_f25 = 1.0f;
|
||||
}
|
||||
@@ -200,13 +200,13 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
if (checkInputOnR() && param_0 && temp_r26 < 0x2800) {
|
||||
if (checkInputOnR() && i_canMove && temp_r26 < 0x2800) {
|
||||
if (checkUnderMove0BckNoArc(ANM_RIDE_WAIT)) {
|
||||
setCommonBoardAnime(1);
|
||||
setCommonBoardAnime(TRUE);
|
||||
}
|
||||
} else {
|
||||
if (checkUnderMove0BckNoArc(ANM_RIDE_FRONT)) {
|
||||
setCommonBoardAnime(0);
|
||||
setCommonBoardAnime(FALSE);
|
||||
}
|
||||
|
||||
if (mNormalSpeed > (0.7f * field_0x594)) {
|
||||
@@ -220,12 +220,12 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
field_0x2f9d = 4;
|
||||
}
|
||||
} else if (!checkModeFlg(2)) {
|
||||
f32 var_f24 = mNormalSpeed * -cM_ssin(shape_angle.x);
|
||||
if (var_f24 < 0.0f) {
|
||||
var_f24 = 0.0f;
|
||||
f32 jump_speed = mNormalSpeed * -cM_ssin(shape_angle.x);
|
||||
if (jump_speed < 0.0f) {
|
||||
jump_speed = 0.0f;
|
||||
}
|
||||
|
||||
return procBoardJumpInit(var_f24, 0);
|
||||
return procBoardJumpInit(jump_speed, FALSE);
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.x, 0, 4, 100, 10);
|
||||
}
|
||||
@@ -235,9 +235,9 @@ int daAlink_c::boardCommon(int param_0) {
|
||||
|
||||
/* 80106534-8010658C 100E74 0058+00 6/6 0/0 0/0 .text setCommonBoardAnime__9daAlink_cFi
|
||||
*/
|
||||
void daAlink_c::setCommonBoardAnime(int param_0) {
|
||||
void daAlink_c::setCommonBoardAnime(BOOL i_is_ride_front) {
|
||||
setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mStandAnmSpeed, 1.0f,
|
||||
param_0 != 0 ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP,
|
||||
i_is_ride_front ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP,
|
||||
11, daAlinkHIO_board_c0::m.mStandInterpolation);
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ int daAlink_c::procBoardRide() {
|
||||
|
||||
/* 80106A38-80106BCC 101378 0194+00 13/13 0/0 0/0 .text
|
||||
* procBoardWaitInit__9daAlink_cFP10fopAc_ac_c */
|
||||
int daAlink_c::procBoardWaitInit(fopAc_ac_c* param_0) {
|
||||
int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) {
|
||||
if (mEquipItem != 0x103) {
|
||||
deleteEquipItem(TRUE, TRUE);
|
||||
} else {
|
||||
@@ -360,110 +360,110 @@ int daAlink_c::procBoardWaitInit(fopAc_ac_c* param_0) {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
}
|
||||
|
||||
if (checkModeFlg(2) && param_0 == NULL) {
|
||||
return procBoardJumpInit(0.0f, 1);
|
||||
if (checkModeFlg(2) && i_board == NULL) {
|
||||
return procBoardJumpInit(0.0f, TRUE);
|
||||
}
|
||||
|
||||
BOOL temp_r28 = mProcID == PROC_BOARD_RIDE;
|
||||
BOOL prev_ride = mProcID == PROC_BOARD_RIDE;
|
||||
if (!commonProcInitNotSameProc(PROC_BOARD_WAIT)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (param_0 != NULL) {
|
||||
mRideAcKeep.setData(param_0);
|
||||
((daObjIceLeaf_c*)param_0)->onRide();
|
||||
if (i_board != NULL) {
|
||||
mRideAcKeep.setData(i_board);
|
||||
((daObjIceLeaf_c*)i_board)->onRide();
|
||||
|
||||
if (temp_r28 != 0) {
|
||||
f32 var_f31 = mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
if (prev_ride) {
|
||||
f32 speed_ratio = mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
if (speed_ratio > 1.0f) {
|
||||
speed_ratio = 1.0f;
|
||||
}
|
||||
|
||||
mNormalSpeed = daAlinkHIO_board_c0::m.mStartMinSpeed + (daAlinkHIO_board_c0::m.mStartAddSpeed * var_f31);
|
||||
mNormalSpeed = daAlinkHIO_board_c0::m.mStartMinSpeed + (daAlinkHIO_board_c0::m.mStartAddSpeed * speed_ratio);
|
||||
} else {
|
||||
mNormalSpeed = 0.0f;
|
||||
}
|
||||
|
||||
field_0x594 = daAlinkHIO_move_c0::m.mMinWalkRate;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
setCommonBoardAnime(0);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
setCommonBoardAnime(FALSE);
|
||||
}
|
||||
|
||||
mRideStatus = 4;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80106BCC-80106E88 10150C 02BC+00 1/0 0/0 0/0 .text procBoardWait__9daAlink_cFv */
|
||||
int daAlink_c::procBoardWait() {
|
||||
if (boardCommon(1)) {
|
||||
if (boardCommon(TRUE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkAnmEnd(&mUnderFrameCtrl[0]) && !checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE)) {
|
||||
setCommonBoardAnime(0);
|
||||
setCommonBoardAnime(FALSE);
|
||||
}
|
||||
|
||||
if (!checkNextActionBoard()) {
|
||||
if (mEquipItem == 0x103 && swordButton()) {
|
||||
if (mProcVar1.field_0x300a == 0) {
|
||||
if (mProcVar1.mBoardSwordChargeTime == 0) {
|
||||
setSingleAnimeBase(ANM_RIDE_CUT_TURN_CHARGE);
|
||||
}
|
||||
|
||||
mProcVar1.field_0x300a++;
|
||||
mProcVar1.mBoardSwordChargeTime++;
|
||||
|
||||
if (mProcVar1.field_0x300a == daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
|
||||
if (mProcVar1.mBoardSwordChargeTime == daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
|
||||
setSwordVoiceSe(Z2SE_AL_V_TAME);
|
||||
}
|
||||
|
||||
if (!checkAnmEnd(&mUnderFrameCtrl[0])) {
|
||||
mProcVar1.field_0x300a = 1;
|
||||
mProcVar1.mBoardSwordChargeTime = 1;
|
||||
} else {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
|
||||
if (mProcVar1.field_0x300a >= 14.0f) {
|
||||
mProcVar1.field_0x300a = 0x18;
|
||||
if (mProcVar1.mBoardSwordChargeTime >= 14.0f) {
|
||||
mProcVar1.mBoardSwordChargeTime = 24;
|
||||
}
|
||||
}
|
||||
} else if (mProcVar1.field_0x300a != 0) {
|
||||
if (mProcVar1.field_0x300a >= 14.0f) {
|
||||
} else if (mProcVar1.mBoardSwordChargeTime != 0) {
|
||||
if (mProcVar1.mBoardSwordChargeTime >= 14.0f) {
|
||||
return procBoardCutTurnInit();
|
||||
}
|
||||
return procBoardCutInit();
|
||||
} else if (mProcVar3.field_0x300e.z == 0) {
|
||||
} else if (mProcVar5.field_0x3012 == 0) {
|
||||
if (!checkModeFlg(2) && mProcID != PROC_BOARD_ROW) {
|
||||
setDoStatus(0xA);
|
||||
|
||||
if (doButton()) {
|
||||
f32 var_f31;
|
||||
f32 blend_ratio;
|
||||
if (field_0x2f8c == 0xB) {
|
||||
var_f31 = mNowAnmPackUnder[1].getRatio();
|
||||
blend_ratio = mNowAnmPackUnder[1].getRatio();
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
blend_ratio = 0.0f;
|
||||
}
|
||||
|
||||
setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mSitAnmSpeed, 1.0f, ANM_RIDE_CROUCH, ANM_RIDE_STOP, 0xB, daAlinkHIO_board_c0::m.mSitInterpolation);
|
||||
setDoubleAnimeBlendRatio(var_f31);
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
setDoubleAnimeBlendRatio(blend_ratio);
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
}
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e.z != 0) {
|
||||
} else if (mProcVar5.field_0x3012 != 0) {
|
||||
if (mNormalSpeed > 15.0f) {
|
||||
setDoStatus(0x19);
|
||||
}
|
||||
|
||||
if (!doButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
if (mNormalSpeed > 15.0f) {
|
||||
procBoardJumpInit(mNormalSpeed, 0);
|
||||
procBoardJumpInit(mNormalSpeed, FALSE);
|
||||
} else {
|
||||
f32 temp_f30 = mNowAnmPackUnder[1].getRatio();
|
||||
setCommonBoardAnime(0);
|
||||
setCommonBoardAnime(FALSE);
|
||||
setDoubleAnimeBlendRatio(temp_f30);
|
||||
}
|
||||
}
|
||||
@@ -479,33 +479,33 @@ int daAlink_c::procBoardRowInit() {
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation);
|
||||
onResetFlg1(RFLG1_UNK_40);
|
||||
mProcVar0.field_0x3008 = 4;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80106F00-80107060 101840 0160+00 1/0 0/0 0/0 .text procBoardRow__9daAlink_cFv */
|
||||
int daAlink_c::procBoardRow() {
|
||||
if (boardCommon(1)) {
|
||||
if (boardCommon(TRUE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
onResetFlg1(RFLG1_UNK_40);
|
||||
mProcVar0.field_0x3008 = 4;
|
||||
}
|
||||
|
||||
if (!checkNextActionBoard()) {
|
||||
daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0];
|
||||
daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (temp_r29->checkPass(0.0f)) {
|
||||
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && mProcVar3.field_0x300e.x < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
if (frame_ctrl->checkPass(0.0f)) {
|
||||
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
} else {
|
||||
setCommonBoardAnime(0);
|
||||
setCommonBoardAnime(FALSE);
|
||||
procBoardWaitInit(NULL);
|
||||
}
|
||||
} else if (temp_r29->checkPass(7.0f)) {
|
||||
} else if (frame_ctrl->checkPass(7.0f)) {
|
||||
mNormalSpeed += daAlinkHIO_board_c0::m.mPushAccel;
|
||||
|
||||
if (mNormalSpeed > daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
@@ -523,21 +523,21 @@ int daAlink_c::procBoardTurnInit() {
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, 1.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, 3.0f);
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
mProcVar3.field_0x300e.y = shape_angle.y + 0x8000;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar4.field_0x3010 = shape_angle.y + 0x8000;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 801070DC-80107218 101A1C 013C+00 1/0 0/0 0/0 .text procBoardTurn__9daAlink_cFv */
|
||||
int daAlink_c::procBoardTurn() {
|
||||
if (boardCommon(0)) {
|
||||
if (boardCommon(FALSE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
setSingleAnime(ANM_RIDE_JUMP, 1.5f, 1.5f + mUnderFrameCtrl[0].getStart(), daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
}
|
||||
} else if (mProcVar1.field_0x300a == 0) {
|
||||
@@ -547,7 +547,7 @@ int daAlink_c::procBoardTurn() {
|
||||
mProcVar1.field_0x300a = 1;
|
||||
}
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e.y, 5, 0x1B58, 0x7D0);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 5, 0x1B58, 0x7D0);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (!checkModeFlg(2)) {
|
||||
@@ -562,28 +562,28 @@ int daAlink_c::procBoardTurn() {
|
||||
}
|
||||
|
||||
/* 80107218-80107300 101B58 00E8+00 4/4 0/0 0/0 .text procBoardJumpInit__9daAlink_cFfi */
|
||||
int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
int daAlink_c::procBoardJumpInit(f32 i_jump_speed, BOOL i_no_speed_set) {
|
||||
commonProcInit(PROC_BOARD_JUMP);
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
|
||||
if (param_1 == 0) {
|
||||
speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
if (!i_no_speed_set) {
|
||||
speed.y = cLib_minMaxLimit(i_jump_speed, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80107300-801073D0 101C40 00D0+00 1/0 0/0 0/0 .text procBoardJump__9daAlink_cFv */
|
||||
int daAlink_c::procBoardJump() {
|
||||
if (boardCommon(1)) {
|
||||
if (boardCommon(TRUE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -591,12 +591,12 @@ int daAlink_c::procBoardJump() {
|
||||
if (!checkModeFlg(2)) {
|
||||
setBoardLandAnime();
|
||||
procBoardWaitInit(NULL);
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && mProcVar3.field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.0099999998f) {
|
||||
} else if (mProcVar5.field_0x3012 != 0 && mProcVar4.field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.0099999998f) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
-1.0f);
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -607,7 +607,7 @@ int daAlink_c::procBoardJump() {
|
||||
int daAlink_c::procBoardSubjectivityInit() {
|
||||
commonProcBoardInit(PROC_BOARD_SUBJECTIVITY);
|
||||
setSubjectMode();
|
||||
setCommonBoardAnime(0);
|
||||
setCommonBoardAnime(FALSE);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -619,7 +619,7 @@ int daAlink_c::procBoardSubjectivity() {
|
||||
s16 old_shape_angle = shape_angle.y;
|
||||
s16 old_angle = current.angle.y;
|
||||
|
||||
if (boardCommon(0)) {
|
||||
if (boardCommon(FALSE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -638,23 +638,23 @@ int daAlink_c::procBoardSubjectivity() {
|
||||
int daAlink_c::procBoardCutInit() {
|
||||
commonProcBoardInit(PROC_BOARD_CUT);
|
||||
|
||||
bool var_r31 = false;
|
||||
bool cut_charge = false;
|
||||
if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE)) {
|
||||
if (mUnderFrameCtrl[0].getFrame() > daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
|
||||
var_r31 = true;
|
||||
cut_charge = true;
|
||||
}
|
||||
}
|
||||
|
||||
setCommonBoardAnime(0);
|
||||
setCutDash(1, var_r31);
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
setCommonBoardAnime(FALSE);
|
||||
setCutDash(1, cut_charge);
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8010755C-801075D4 101E9C 0078+00 1/0 0/0 0/0 .text procBoardCut__9daAlink_cFv */
|
||||
int daAlink_c::procBoardCut() {
|
||||
if (boardCommon(1)) {
|
||||
if (boardCommon(TRUE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -685,7 +685,7 @@ int daAlink_c::procBoardCutTurnInit() {
|
||||
field_0x3198 = 0;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
resetCombo(1);
|
||||
|
||||
field_0x3478 = daAlinkHIO_cutTurn_c0::m.mAttackRadius;
|
||||
@@ -693,20 +693,20 @@ int daAlink_c::procBoardCutTurnInit() {
|
||||
initCutTurnAt(field_0x347c, 3);
|
||||
|
||||
mProcVar1.field_0x300a = 4;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
voiceStart(Z2SE_AL_V_KAITEN);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80107744-80107900 102084 01BC+00 1/0 0/0 0/0 .text procBoardCutTurn__9daAlink_cFv */
|
||||
int daAlink_c::procBoardCutTurn() {
|
||||
if (boardCommon(1)) {
|
||||
if (boardCommon(TRUE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0];
|
||||
daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (temp_r30->getFrame() >= 4.0f && temp_r30->getFrame() < 14.0f) {
|
||||
if (frame_ctrl->getFrame() >= 4.0f && frame_ctrl->getFrame() < 14.0f) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_KAITENGIRI);
|
||||
}
|
||||
@@ -716,7 +716,7 @@ int daAlink_c::procBoardCutTurn() {
|
||||
field_0xFB8.SetR(field_0x347c);
|
||||
onResetFlg1(RFLG1_UNK_40);
|
||||
} else {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
if (!checkModeFlg(2)) {
|
||||
@@ -724,7 +724,7 @@ int daAlink_c::procBoardCutTurn() {
|
||||
setBoardLandAnime();
|
||||
procBoardWaitInit(NULL);
|
||||
} else {
|
||||
if (temp_r30->getFrame() >= 3.0f) {
|
||||
if (frame_ctrl->getFrame() >= 3.0f) {
|
||||
speed.y = mNormalSpeed * -cM_ssin(shape_angle.x);
|
||||
|
||||
if (speed.y < daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY) {
|
||||
@@ -740,8 +740,8 @@ int daAlink_c::procBoardCutTurn() {
|
||||
}
|
||||
} else {
|
||||
field_0x3198 = 1;
|
||||
if (checkAnmEnd(temp_r30)) {
|
||||
procBoardJumpInit(0.0f, 1);
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
procBoardJumpInit(0.0f, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ void daAlink_c::setIronBallModel() {
|
||||
JKRHeap* prev_heap = setItemHeap();
|
||||
|
||||
mHeldItemModel = initModelEnv(loadAramBmd(0x311, 0x2800), 0);
|
||||
mpHookKusariModelData = loadAramBmd(0x317, 0x1000);
|
||||
mpItemModelData = loadAramBmd(0x317, 0x1000);
|
||||
mpHookChain = new hsChainShape_c();
|
||||
|
||||
mIronBallChainPos = new cXyz[102];
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "d/actor/d_a_e_sm2.h"
|
||||
#include "d/actor/d_a_tag_ss_drink.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
/* 80110654-80110668 10AF94 0014+00 1/1 0/0 0/0 .text daAlink_searchTagKandelaar__FP10fopAc_ac_cPv
|
||||
*/
|
||||
@@ -107,8 +108,47 @@ bool daAlink_c::checkKandelaarSwing(int param_0) const {
|
||||
}
|
||||
|
||||
/* 801108EC-80110BEC 10B22C 0300+00 1/1 0/0 0/0 .text kandelaarModelCallBack__9daAlink_cFv */
|
||||
void daAlink_c::kandelaarModelCallBack() {
|
||||
// NONMATCHING
|
||||
// NONMATCHING - regalloc from cLib_minMaxLimit
|
||||
int daAlink_c::kandelaarModelCallBack() {
|
||||
cXyz sp44;
|
||||
mDoMtx_multVecZero(J3DSys::mCurrentMtx, &sp44);
|
||||
|
||||
field_0x3630 = field_0x3624;
|
||||
field_0x3624 = mKandelaarFlamePos;
|
||||
|
||||
cXyz sp38 = (mKandelaarFlamePos - sp44) + field_0x3618;
|
||||
sp38.y -= 3.0f;
|
||||
|
||||
cXyz sp2C;
|
||||
mDoMtx_multVec(J3DSys::mCurrentMtx, &cXyz::BaseZ, &sp2C);
|
||||
|
||||
s16 var_r29 = sp2C.atan2sX_Z();
|
||||
mDoMtx_stack_c::YrotS(-var_r29);
|
||||
mDoMtx_stack_c::multVec(&sp38, &sp38);
|
||||
|
||||
s16 var_r28 = cLib_minMaxLimit<s16>(cM_atan2s(-sp38.z, -sp38.y), -0x1800, 0x1800);
|
||||
s16 var_r27 = cLib_minMaxLimit<s16>(cM_atan2s(sp38.x, JMAFastSqrt((sp38.y * sp38.y) + (sp38.z * sp38.z))), -0x1800, 0x1800);
|
||||
|
||||
mDoMtx_stack_c::transS(sp44);
|
||||
if (mProcID != PROC_OPEN_TREASURE && (mProcID != PROC_GET_ITEM || mProcVar4.field_0x3010 == 0)) {
|
||||
mDoMtx_stack_c::ZXYrotM(var_r28, var_r29, var_r27);
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::multVec(&kandelaarOffset, &mKandelaarFlamePos);
|
||||
|
||||
field_0x3618 = (mKandelaarFlamePos - field_0x3624) * 0.9f;
|
||||
|
||||
if (!checkEndResetFlg1(ERFLG1_UNK_8)) {
|
||||
f32 temp_f31 = JMAFastSqrt((J3DSys::mCurrentMtx[0][0] * J3DSys::mCurrentMtx[0][0]) + (J3DSys::mCurrentMtx[1][0] * J3DSys::mCurrentMtx[1][0]) + (J3DSys::mCurrentMtx[2][0] * J3DSys::mCurrentMtx[2][0]));
|
||||
mDoMtx_stack_c::transS(J3DSys::mCurrentMtx[0][3], J3DSys::mCurrentMtx[1][3], J3DSys::mCurrentMtx[2][3]);
|
||||
mDoMtx_stack_c::ZXYrotM(var_r28, var_r29, var_r27);
|
||||
mDoMtx_stack_c::scaleM(temp_f31, temp_f31, temp_f31);
|
||||
|
||||
mpKanteraModel->setAnmMtx(1, mDoMtx_stack_c::get());
|
||||
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80110BEC-80110C28 10B52C 003C+00 1/1 0/0 0/0 .text daAlink_kandelaarModelCallBack__FP8J3DJointi
|
||||
@@ -220,7 +260,7 @@ void daAlink_c::setKandelaarModel() {
|
||||
void daAlink_c::resetOilBottleModel() {
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
setKandelaarModel();
|
||||
mEquipItem = KANTERA;
|
||||
}
|
||||
@@ -231,9 +271,9 @@ void daAlink_c::resetOilBottleModel() {
|
||||
/* 80110FE0-801110B8 10B920 00D8+00 3/3 0/0 0/0 .text commonKandelaarPourInit__9daAlink_cFv */
|
||||
void daAlink_c::commonKandelaarPourInit() {
|
||||
if (checkNoResetFlg2(FLG2_UNK_1)) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
keepItemData();
|
||||
|
||||
+82
-141
@@ -14,21 +14,21 @@ int daAlink_c::procPreActionUnequipInit(int i_procAfter, fopAc_ac_c* param_1) {
|
||||
mNormalSpeed = 0.0f;
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
|
||||
allUnequip(0);
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
if (param_1 != NULL) {
|
||||
field_0x280c.setData(param_1);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
|
||||
if (fopAcM_GetName(param_1) == PROC_Tag_Lv8Gate) {
|
||||
if (mEquipItem == KANTERA) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
} else if (checkNoResetFlg2(FLG2_UNK_1)) {
|
||||
offKandelaarModel();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
field_0x3198 = i_procAfter;
|
||||
@@ -39,7 +39,7 @@ int daAlink_c::procPreActionUnequipInit(int i_procAfter, fopAc_ac_c* param_1) {
|
||||
*/
|
||||
int daAlink_c::procPreActionUnequip() {
|
||||
if (checkNoUpperAnime()) {
|
||||
if (mProcVar3.field_0x300e.x != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor()))
|
||||
if (mProcVar3.field_0x300e != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor()))
|
||||
{
|
||||
checkWaitAction();
|
||||
} else if (field_0x3198 == PROC_PUSH_PULL_WAIT) {
|
||||
@@ -373,7 +373,7 @@ int daAlink_c::procWaitTurnInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = field_0x2fe2;
|
||||
mProcVar3.field_0x300e = field_0x2fe2;
|
||||
current.angle.y = shape_angle.y;
|
||||
return 1;
|
||||
}
|
||||
@@ -387,7 +387,7 @@ int daAlink_c::procWaitTurn() {
|
||||
} else if (checkEndResetFlg0(ERFLG0_UNK_100000)) {
|
||||
return procFloorDownReboundInit();
|
||||
} else {
|
||||
s16 angle = cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e.x, 30, 0x3CDF, 8000);
|
||||
s16 angle = cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e, 30, 0x3CDF, 8000);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (checkNextActionFromButton()) {
|
||||
@@ -418,26 +418,26 @@ int daAlink_c::procMoveTurnInit(int param_0) {
|
||||
dComIfGp_setPlayerStatus0(0, 0x800);
|
||||
|
||||
if (param_0 != 0) {
|
||||
mProcVar3.field_0x300e.x = (daAlinkHIO_move_c0::m.mMaxTurnAngle * 4) + 19030;
|
||||
mProcVar3.field_0x300e.y = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2;
|
||||
mProcVar3.field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle * 4) + 19030;
|
||||
mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2;
|
||||
mProcVar1.field_0x300a = 2;
|
||||
current.angle.y = field_0x2fe2;
|
||||
mNormalSpeed *= 0.5f;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2;
|
||||
mProcVar3.field_0x300e.y = daAlinkHIO_move_c0::m.mMaxTurnAngle;
|
||||
mProcVar3.field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2;
|
||||
mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle;
|
||||
mProcVar1.field_0x300a = 3;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2;
|
||||
mProcVar3.field_0x300e.y = daAlinkHIO_move_c0::m.mMaxTurnAngle;
|
||||
mProcVar3.field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2;
|
||||
mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */
|
||||
int daAlink_c::procMoveTurn() {
|
||||
setSpeedAndAngleNormal();
|
||||
cLib_addCalcAngleS(&shape_angle.y, current.angle.y, mProcVar1.field_0x300a, mProcVar3.field_0x300e.x, mProcVar3.field_0x300e.y);
|
||||
cLib_addCalcAngleS(&shape_angle.y, current.angle.y, mProcVar1.field_0x300a, mProcVar3.field_0x300e, mProcVar4.field_0x3010);
|
||||
|
||||
if (!checkNextAction(0)) {
|
||||
setBlendMoveAnime(-1.0f);
|
||||
@@ -486,7 +486,7 @@ int daAlink_c::procSideStepInit(int jump_type) {
|
||||
|
||||
voiceStart(Z2SE_AL_V_JUMP_S);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -509,7 +509,7 @@ int daAlink_c::procSideStep() {
|
||||
|
||||
if (checkUpperItemActionFly()) {
|
||||
return 1;
|
||||
} else if (mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e.x != 0) {
|
||||
} else if (mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e != 0) {
|
||||
if (mProcVar2.field_0x300c != 0 && checkSideRollAction(field_0x2f98)) {
|
||||
return 1;
|
||||
} else {
|
||||
@@ -523,7 +523,7 @@ int daAlink_c::procSideStep() {
|
||||
return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
checkItemChangeFromButton();
|
||||
return 1;
|
||||
}
|
||||
@@ -612,12 +612,12 @@ int daAlink_c::procSlideInit(s16 param_0) {
|
||||
current.angle.y = param_0;
|
||||
|
||||
if (getMoveBGActorName(mLinkAcch.m_gnd, FALSE) == PROC_Obj_Lv3R10Saka) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
if (cLib_distanceAngleS(param_0, shape_angle.y) < 0x3800 || mProcVar3.field_0x300e.x != 0) {
|
||||
if (cLib_distanceAngleS(param_0, shape_angle.y) < 0x3800 || mProcVar3.field_0x300e != 0) {
|
||||
field_0x3198 = 1;
|
||||
setSingleAnimeParam(ANM_SLIDE_FORWARD, &daAlinkHIO_slide_c0::m.mForwardSlideAnm);
|
||||
dComIfGp_setPlayerStatus1(0, 0x100);
|
||||
@@ -640,7 +640,7 @@ int daAlink_c::procSlideInit(s16 param_0) {
|
||||
field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed;
|
||||
field_0x33cc = 0.0f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -661,7 +661,7 @@ int daAlink_c::procSlide() {
|
||||
}
|
||||
|
||||
angleY += mProcVar2.field_0x300c;
|
||||
cLib_addCalcAngleS(&mProcVar3.field_0x300e.y, sin * -4096.0f, 3, 300, 50);
|
||||
cLib_addCalcAngleS(&mProcVar4.field_0x3010, sin * -4096.0f, 3, 300, 50);
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(¤t.angle.y, angleY, 4, 0x1000, 0x400);
|
||||
@@ -1688,7 +1688,7 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) {
|
||||
offNoResetFlg0(FLG0_UNDERWATER);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
if (param_0 == 1) {
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -1711,10 +1711,10 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) {
|
||||
|
||||
mNormalSpeed = field_0x3408;
|
||||
speed.y = field_0x340c;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.y = temp_r30;
|
||||
mProcVar4.field_0x3010 = temp_r30;
|
||||
setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, param_1);
|
||||
resetBasAnime();
|
||||
|
||||
@@ -1737,7 +1737,7 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) {
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = param_0 == 3;
|
||||
mProcVar3.field_0x300e = param_0 == 3;
|
||||
offNoResetFlg0(FLG0_UNK_40000);
|
||||
mFallVoiceInit = 0;
|
||||
return 1;
|
||||
@@ -1746,10 +1746,10 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) {
|
||||
|
||||
/* 800C6D20-800C6F18 0C1660 01F8+00 1/0 0/0 0/0 .text procFall__9daAlink_cFv */
|
||||
int daAlink_c::procFall() {
|
||||
if (mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f);
|
||||
} else if (mProcVar3.field_0x300e.z > 0) {
|
||||
mProcVar3.field_0x300e.z = -1;
|
||||
} else if (mProcVar5.field_0x3012 > 0) {
|
||||
mProcVar5.field_0x3012 = -1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1759,7 +1759,7 @@ int daAlink_c::procFall() {
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
return checkLandAction(mProcVar3.field_0x300e.x);
|
||||
return checkLandAction(mProcVar3.field_0x300e);
|
||||
}
|
||||
|
||||
if (dComIfGs_getLife() != 0) {
|
||||
@@ -1883,11 +1883,11 @@ int daAlink_c::procSmallJumpInit(int param_0) {
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = cLib_targetAngleY(¤t.pos, &sp8);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setHeavyBoots(0);
|
||||
} else {
|
||||
field_0x3478 = field_0x34ec.y;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1930,11 +1930,11 @@ int daAlink_c::procSmallJump() {
|
||||
voiceStart(Z2SE_AL_V_JUMP_S);
|
||||
field_0x2f99 = 7;
|
||||
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e != 0) {
|
||||
shape_angle.y = mProcVar2.field_0x300c;
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e.x != 0) {
|
||||
} else if (mProcVar3.field_0x300e != 0) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 3, 0x1000, 0x400);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
@@ -2046,8 +2046,8 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
|
||||
field_0x3198 = var_r29;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x347c = 1.0f;
|
||||
mFallVoiceInit = 0;
|
||||
|
||||
@@ -2065,7 +2065,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
|
||||
if (checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
mProcVar1.field_0x300a = 0;
|
||||
|
||||
@@ -2138,7 +2138,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
}
|
||||
speed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
field_0x3484 = current.pos.y;
|
||||
@@ -2167,9 +2167,9 @@ int daAlink_c::procCoMetamorphose() {
|
||||
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (mProcVar0.field_0x3008 != 0 && mProcVar3.field_0x300e.z == 0) {
|
||||
if (mProcVar0.field_0x3008 != 0 && mProcVar5.field_0x3012 == 0) {
|
||||
if (mClothesChangeWaitTimer == 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
|
||||
if (mDemo.getParam0() == 1 && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
@@ -2209,8 +2209,8 @@ int daAlink_c::procCoMetamorphose() {
|
||||
}
|
||||
|
||||
}
|
||||
} else if (checkAnmEnd(temp_r29) || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) || (mProcVar3.field_0x300e.z != 0 && temp_r29->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) {
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
} else if (checkAnmEnd(temp_r29) || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) || (mProcVar5.field_0x3012 != 0 && temp_r29->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
deleteEquipItem(0, 0);
|
||||
|
||||
if (field_0x3198 != 0) {
|
||||
@@ -2235,47 +2235,47 @@ int daAlink_c::procCoMetamorphose() {
|
||||
mpWlMidnaModel = NULL;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
if (mProcVar4.field_0x3010 != 0) {
|
||||
dComIfGs_onEventBit(0x5E40);
|
||||
}
|
||||
}
|
||||
|
||||
field_0x33dc = temp_r29->getFrame();
|
||||
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
if (checkWolf()) {
|
||||
f32 var_f31 = 1.0f - (0.03846154f * field_0x33dc);
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = -64.0f * var_f31;
|
||||
mProcVar3.field_0x300e = -64.0f * var_f31;
|
||||
} else if (field_0x33dc < 14.0f) {
|
||||
mProcVar3.field_0x300e.x = 15.0 + (49.0 * (1.0 - (0.07142857142857142 * field_0x33dc)));
|
||||
mProcVar3.field_0x300e = 15.0 + (49.0 * (1.0 - (0.07142857142857142 * field_0x33dc)));
|
||||
} else {
|
||||
f32 var_f31_2 = 1.0f - (0.2f * (field_0x33dc - 14.0f));
|
||||
if (var_f31_2 < 0.0f) {
|
||||
var_f31_2 = 0.0f;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = 15.0f * var_f31_2;
|
||||
mProcVar3.field_0x300e = 15.0f * var_f31_2;
|
||||
}
|
||||
} else if (checkWolf() != 0) {
|
||||
mProcVar3.field_0x300e.x = -64.0 * (0.07142857142857142 * field_0x33dc);
|
||||
mProcVar3.field_0x300e = -64.0 * (0.07142857142857142 * field_0x33dc);
|
||||
} else if (field_0x33dc < 9.0f) {
|
||||
mProcVar3.field_0x300e.x = -15.0 * (0.1111111111111111 * field_0x33dc);
|
||||
mProcVar3.field_0x300e = -15.0 * (0.1111111111111111 * field_0x33dc);
|
||||
} else {
|
||||
f32 var_f31_3 = 0.2f * (field_0x33dc - 9.0f);
|
||||
if (var_f31_3 > 1.0f) {
|
||||
var_f31_3 = 1.0f;
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e.x = -(15.0f + (49.0f * var_f31_3));
|
||||
mProcVar3.field_0x300e = -(15.0f + (49.0f * var_f31_3));
|
||||
}
|
||||
|
||||
if (!checkWolf()) {
|
||||
f32 var_f30;
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
var_f30 = (field_0x33dc - 13.0f) / 4.0f;
|
||||
} else {
|
||||
var_f30 = (field_0x33dc - 8.0f) / 5.0f;
|
||||
@@ -2283,7 +2283,7 @@ int daAlink_c::procCoMetamorphose() {
|
||||
|
||||
var_f30 = cLib_minMaxLimit<f32>(var_f30, 0.0f, 1.0f);
|
||||
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
field_0x347c = 0.5f + (0.027777778f * field_0x33dc);
|
||||
var_f30 = 1.0f - var_f30;
|
||||
} else {
|
||||
@@ -2314,10 +2314,10 @@ int daAlink_c::procCoMetamorphoseOnlyInit() {
|
||||
(!checkWolf() && mDemo.getDemoMode() == 0x47))
|
||||
{
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
} else {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -2333,8 +2333,8 @@ int daAlink_c::procCoMetamorphoseOnly() {
|
||||
mClothesChangeWaitTimer = 4;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (mClothesChangeWaitTimer == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
mProcVar3.field_0x300e = 1;
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14,
|
||||
@@ -2944,7 +2944,7 @@ int daAlink_c::execute() {
|
||||
field_0x2ff0 = 0;
|
||||
field_0x2fbb = 16;
|
||||
field_0x2fbd = 0;
|
||||
field_0x2fa8 = 0;
|
||||
mGndPolySpecialCode = dBgW_SPCODE_NORMAL;
|
||||
|
||||
if (checkModeFlg(MODE_SWIMMING) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr)) {
|
||||
mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr);
|
||||
@@ -2967,14 +2967,14 @@ int daAlink_c::execute() {
|
||||
field_0x2ff0 = 0;
|
||||
field_0x3174 = dComIfG_Bgsp().GetGroundCode(mMagneLineChk);
|
||||
field_0x2fbb = dComIfG_Bgsp().GetPolyAtt0(mMagneLineChk);
|
||||
field_0x2fa8 = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk);
|
||||
mGndPolySpecialCode = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk);
|
||||
setMagneBootsMtx(&mMagneLineChk, 0);
|
||||
} else {
|
||||
mPolySound = 0;
|
||||
field_0x2ff0 = 0;
|
||||
field_0x3174 = -1;
|
||||
field_0x2fbb = 16;
|
||||
field_0x2fa8 = 0;
|
||||
mGndPolySpecialCode = dBgW_SPCODE_NORMAL;
|
||||
}
|
||||
} else {
|
||||
field_0x2f5c.mPow = 0.0f;
|
||||
@@ -3560,7 +3560,7 @@ int daAlink_c::draw() {
|
||||
|
||||
if (mClothesChangeWaitTimer != 0) {
|
||||
if (mProcID == PROC_METAMORPHOSE) {
|
||||
if (mProcVar3.field_0x300e.x > 0) {
|
||||
if (mProcVar3.field_0x300e > 0) {
|
||||
tevStr.mFogColor.r = 255;
|
||||
} else {
|
||||
tevStr.mFogColor.r = -255;
|
||||
@@ -3584,9 +3584,9 @@ int daAlink_c::draw() {
|
||||
} else if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_DUNGEON_WARP ||
|
||||
mProcID == PROC_DUNGEON_WARP_SCN_START)
|
||||
{
|
||||
tevStr.mFogColor.r = mProcVar3.field_0x300e.x;
|
||||
tevStr.mFogColor.g = mProcVar3.field_0x300e.x;
|
||||
tevStr.mFogColor.b = mProcVar3.field_0x300e.x;
|
||||
tevStr.mFogColor.r = mProcVar3.field_0x300e;
|
||||
tevStr.mFogColor.g = mProcVar3.field_0x300e;
|
||||
tevStr.mFogColor.b = mProcVar3.field_0x300e;
|
||||
} else if (field_0x346c != 0.0f) {
|
||||
f32 var_f2 = fabsf(field_0x346c);
|
||||
tevStr.mFogColor.r = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropR;
|
||||
@@ -3881,41 +3881,6 @@ static int daAlink_Draw(daAlink_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803B3580-803B3590 0106A0 0010+00 3/3 0/0 0/0 .data __vt__15daAlink_sight_c */
|
||||
SECTION_DATA extern void* __vt__15daAlink_sight_c[4] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__15daAlink_sight_cFv,
|
||||
(void*)__dt__15daAlink_sight_cFv,
|
||||
};
|
||||
|
||||
/* 803B3590-803B35A0 0106B0 0010+00 4/4 0/0 0/0 .data __vt__20daAlink_lockCursor_c */
|
||||
SECTION_DATA extern void* __vt__20daAlink_lockCursor_c[4] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__20daAlink_lockCursor_cFv,
|
||||
(void*)__dt__20daAlink_lockCursor_cFv,
|
||||
};
|
||||
|
||||
/* 803B35A0-803B35B4 0106C0 0014+00 3/3 0/0 0/0 .data __vt__14daAlink_blur_c */
|
||||
SECTION_DATA extern void* __vt__14daAlink_blur_c[5] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
|
||||
(void*)draw__14daAlink_blur_cFv,
|
||||
(void*)__dt__14daAlink_blur_cFv,
|
||||
};
|
||||
|
||||
/* 803B35B4-803B35C8 0106D4 0014+00 3/3 0/0 0/0 .data __vt__29dAlink_bottleWaterPcallBack_c */
|
||||
SECTION_DATA extern void* __vt__29dAlink_bottleWaterPcallBack_c[5] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__29dAlink_bottleWaterPcallBack_cFv,
|
||||
(void*)execute__29dAlink_bottleWaterPcallBack_cFP14JPABaseEmitterP15JPABaseParticle,
|
||||
(void*)draw__19JPAParticleCallBackFP14JPABaseEmitterP15JPABaseParticle,
|
||||
};
|
||||
|
||||
/* 800CD7AC-800CE208 0C80EC 0A5C+00 1/1 0/0 0/0 .text __dt__9daAlink_cFv */
|
||||
daAlink_c::~daAlink_c() {
|
||||
dComIfGp_clearPlayerStatus0(0, ~0x400030);
|
||||
@@ -3983,8 +3948,14 @@ bool daAlink_c::checkNoSubjectModeCamera() {
|
||||
|
||||
/* 800CE468-800CE628 0C8DA8 01C0+00 2/2 0/0 0/0 .text acceptSubjectModeChange__9daAlink_cFv */
|
||||
bool daAlink_c::acceptSubjectModeChange() {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
return dCam_getBody()->ChangeModeOK(4) &&
|
||||
!checkNoSubjectModeCamera() &&
|
||||
!checkAttentionLock() &&
|
||||
!checkHorseLieAnime() &&
|
||||
!checkEventRun() &&
|
||||
!checkModeFlg(0x310040) &&
|
||||
(checkNoUpperAnime() || checkHorseTiredAnime() || checkGrabAnime() || checkWolfGrabAnime()) &&
|
||||
!(checkWolf() && checkWolfWaitSlipPolygon() && mLinkAcch.i_ChkGroundHit());
|
||||
}
|
||||
|
||||
/* 800CE628-800CE728 0C8F68 0100+00 5/5 0/0 0/0 .text checkSubjectAction__9daAlink_cFv */
|
||||
@@ -4497,7 +4468,7 @@ extern "C" s16 getSumouCounter__9daAlink_cCFv(daAlink_c* this_) {
|
||||
/* 800D027C-800D0284 0CABBC 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daAlink_cCFv
|
||||
*/
|
||||
extern "C" s16 checkSumouWithstand__9daAlink_cCFv(daAlink_c* this_) {
|
||||
return this_->mProcVar3.field_0x300e.x;
|
||||
return this_->mProcVar3.field_0x300e;
|
||||
}
|
||||
|
||||
/* 800D0284-800D0290 0CABC4 000C+00 1/0 0/0 0/0 .text setMidnaMsgNum__9daAlink_cFP10fopAc_ac_cUs
|
||||
@@ -4622,7 +4593,7 @@ extern "C" BOOL checkGuardBreakMode__9daAlink_cCFv(daAlink_c* this_) {
|
||||
|
||||
/* 800D047C-800D04A4 0CADBC 0028+00 1/0 0/0 0/0 .text checkLv3Slide__9daAlink_cCFv */
|
||||
extern "C" bool checkLv3Slide__9daAlink_cCFv(daAlink_c* this_) {
|
||||
return this_->mProcID == daAlink_c::PROC_SLIDE && this_->mProcVar3.field_0x300e.x != 0;
|
||||
return this_->mProcID == daAlink_c::PROC_SLIDE && this_->mProcVar3.field_0x300e != 0;
|
||||
}
|
||||
|
||||
/* 800D04A4-800D04B8 0CADE4 0014+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daAlink_cCFv */
|
||||
@@ -4713,7 +4684,7 @@ extern "C" BOOL checkWolfRSit__9daAlink_cCFv(daAlink_c* this_) {
|
||||
/* 800D0638-800D0660 0CAF78 0028+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daAlink_cCFv
|
||||
*/
|
||||
extern "C" BOOL checkBottleDrinkEnd__9daAlink_cCFv(daAlink_c* this_) {
|
||||
return this_->mProcID == daAlink_c::PROC_BOTTLE_DRINK && this_->mProcVar3.field_0x300e.x != 0;
|
||||
return this_->mProcID == daAlink_c::PROC_BOTTLE_DRINK && this_->mProcVar3.field_0x300e != 0;
|
||||
}
|
||||
|
||||
/* 800D0660-800D0674 0CAFA0 0014+00 1/0 0/0 0/0 .text checkWolfDig__9daAlink_cCFv */
|
||||
@@ -4801,7 +4772,7 @@ extern "C" void onSceneChangeDead__9daAlink_cFUci(daAlink_c* this_, u8 param_0,
|
||||
if (this_->mProcID != daAlink_c::PROC_DEAD) {
|
||||
return;
|
||||
}
|
||||
this_->mProcVar3.field_0x300e.z = param_0;
|
||||
this_->mProcVar5.field_0x3012 = param_0;
|
||||
this_->field_0x3198 = param_1;
|
||||
}
|
||||
|
||||
@@ -4814,7 +4785,7 @@ extern "C" bool checkNoEquipItem__9daAlink_cCFv(daAlink_c* this_) {
|
||||
*/
|
||||
extern "C" s16 getBoardCutTurnOffsetAngleY__9daAlink_cCFv(daAlink_c* this_) {
|
||||
if (this_->mProcID == daAlink_c::PROC_BOARD_CUT_TURN) {
|
||||
return this_->mProcVar3.field_0x300e.z;
|
||||
return this_->mProcVar5.field_0x3012;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -4850,7 +4821,7 @@ extern "C" void setSumouPushBackDirection__9daAlink_cFs(daAlink_c* this_, s16 pa
|
||||
if (this_->mProcID != daAlink_c::PROC_SUMOU_MOVE) {
|
||||
return;
|
||||
}
|
||||
this_->mProcVar3.field_0x300e.y = param_0;
|
||||
this_->mProcVar4.field_0x3010 = param_0;
|
||||
}
|
||||
|
||||
/* 800D0930-800D0948 0CB270 0018+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daAlink_cFv */
|
||||
@@ -4878,7 +4849,7 @@ extern "C" void setWolfEnemyHangBiteAngle__9daAlink_cFs(daAlink_c* this_, s16 an
|
||||
if (this_->mProcID != daAlink_c::PROC_WOLF_ENEMY_HANG_BITE) {
|
||||
return;
|
||||
}
|
||||
this_->mProcVar3.field_0x300e.y = angle;
|
||||
this_->mProcVar4.field_0x3010 = angle;
|
||||
}
|
||||
|
||||
/* 800D0984-800D0998 0CB2C4 0014+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daAlink_cFi */
|
||||
@@ -4944,12 +4915,12 @@ extern "C" bool checkCopyRodEquip__9daAlink_cCFv(daAlink_c* this_) {
|
||||
|
||||
/* 800D0A44-800D0A6C 0CB384 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daAlink_cCFv */
|
||||
extern "C" bool checkCanoeFishingGetLeft__9daAlink_cCFv(daAlink_c* this_) {
|
||||
return this_->mProcID == daAlink_c::PROC_CANOE_FISHING_GET && this_->mProcVar3.field_0x300e.x == 0;
|
||||
return this_->mProcID == daAlink_c::PROC_CANOE_FISHING_GET && this_->mProcVar3.field_0x300e == 0;
|
||||
}
|
||||
|
||||
/* 800D0A6C-800D0A94 0CB3AC 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daAlink_cCFv */
|
||||
extern "C" bool checkCanoeFishingGetRight__9daAlink_cCFv(daAlink_c* this_) {
|
||||
return this_->mProcID == daAlink_c::PROC_CANOE_FISHING_GET && this_->mProcVar3.field_0x300e.x == 1;
|
||||
return this_->mProcID == daAlink_c::PROC_CANOE_FISHING_GET && this_->mProcVar3.field_0x300e == 1;
|
||||
}
|
||||
|
||||
/* 800D0A94-800D0A9C 0CB3D4 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daAlink_cCFv
|
||||
@@ -4978,7 +4949,7 @@ extern "C" void cancelOctaIealHang__9daAlink_cFv(daAlink_c* this_) {
|
||||
if (this_->mProcID != daAlink_c::PROC_BOSS_BODY_HANG) {
|
||||
return;
|
||||
}
|
||||
this_->mProcVar3.field_0x300e.x = 1;
|
||||
this_->mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
|
||||
/* 800D0B08-800D0B20 0CB448 0018+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daAlink_cFv */
|
||||
@@ -4986,7 +4957,7 @@ extern "C" void cancelDragonHangBackJump__9daAlink_cFv(daAlink_c* this_) {
|
||||
if (this_->mProcID != daAlink_c::PROC_BOSS_BODY_HANG) {
|
||||
return;
|
||||
}
|
||||
this_->mProcVar3.field_0x300e.x = -1;
|
||||
this_->mProcVar3.field_0x300e = -1;
|
||||
}
|
||||
|
||||
/* 800D0B20-800D0B38 0CB460 0018+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daAlink_cFv
|
||||
@@ -5015,42 +4986,12 @@ extern "C" void __dt__16daAlink_matAnm_cFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803B35C8-803B35EC 0106E8 0024+00 2/2 5/5 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_801446DC,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_801446D4,
|
||||
};
|
||||
|
||||
/* 800D0C6C-800D0CDC 0CB5AC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803B35EC-803B3610 01070C 0014+10 3/3 0/0 0/0 .data __vt__Q29daAlink_c14hsChainShape_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__Q29daAlink_c14hsChainShape_c[5 + 4 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
|
||||
(void*)draw__Q29daAlink_c14hsChainShape_cFv,
|
||||
(void*)__dt__Q29daAlink_c14hsChainShape_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 800D0CDC-800D0D38 0CB61C 005C+00 1/0 0/0 0/0 .text __dt__Q29daAlink_c14hsChainShape_cFv */
|
||||
extern "C" void __dt__Q29daAlink_c14hsChainShape_cFv() {
|
||||
// NONMATCHING
|
||||
|
||||
@@ -192,11 +192,11 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
mProcVar3.field_0x300e.x = shape_angle.y;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = shape_angle.y;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3198 = ANM_RIDE_CROUCH;
|
||||
field_0x33b0 = 70.0f;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x37a4 = mRideAcKeep.getActor()->current.pos;
|
||||
|
||||
return 1;
|
||||
@@ -235,7 +235,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar3.field_0x300e.x = shape_angle.y;
|
||||
mProcVar3.field_0x300e = shape_angle.y;
|
||||
}
|
||||
} else {
|
||||
if (checkSetItemTrigger(SPINNER) || swordSwingTrigger() || itemSetBtn == 2) {
|
||||
@@ -262,7 +262,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
current.angle.y = spinner->current.angle.y;
|
||||
|
||||
if (spinner->checkSpinnerTagIntoIncRot()) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
|
||||
if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
@@ -272,7 +272,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0);
|
||||
}
|
||||
} else if (spinner->checkSpinnerTagInto()) {
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
} else {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT);
|
||||
@@ -289,18 +289,18 @@ int daAlink_c::procSpinnerWait() {
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (field_0x3198 == ANM_RIDE_JUMP) {
|
||||
if (!spinner->getJumpFlg()) {
|
||||
setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mStartFrame, 16,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mInterpolation);
|
||||
field_0x3198 = ANM_RIDE_JUMP_LAND;
|
||||
} else if (mProcVar3.field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
} else if (mProcVar4.field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
} else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) ||
|
||||
(field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) {
|
||||
@@ -311,7 +311,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
setSpinnerSyncPos();
|
||||
shape_angle.y = mProcVar3.field_0x300e.x;
|
||||
shape_angle.y = mProcVar3.field_0x300e;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_npc_wrestler.h"
|
||||
#include "d/actor/d_a_boomerang.h"
|
||||
|
||||
/* 800EA844-800EA8D0 0E5184 008C+00 5/5 0/0 0/0 .text checkSumouVsActor__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkSumouVsActor() {
|
||||
@@ -56,7 +57,7 @@ int daAlink_c::procSumouReadyInit() {
|
||||
field_0x2f99 = 4;
|
||||
mSpecialMode = 1;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
|
||||
if (mThrowBoomerangAcKeep.getActor() != NULL) {
|
||||
@@ -84,7 +85,7 @@ int daAlink_c::procSumouReady() {
|
||||
}
|
||||
|
||||
if (sumouPunchTrigger()) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,12 +119,12 @@ int daAlink_c::procSumouReady() {
|
||||
}
|
||||
|
||||
if (mSpecialMode == 0x1C || mSpecialMode == 0x1B || mProcVar2.field_0x300c != 0 ||
|
||||
mProcVar3.field_0x300e.x != 0 ||
|
||||
mProcVar3.field_0x300e != 0 ||
|
||||
(static_cast<daNpcWrestler_c*>(mCargoCarryAcKeep.getActor())->getWrestlerAction() ==
|
||||
3 &&
|
||||
!checkZeroSpeedF()))
|
||||
{
|
||||
procSumouActionInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e.x, 0);
|
||||
procSumouActionInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e, 0);
|
||||
} else {
|
||||
procSumouSideMoveInit();
|
||||
}
|
||||
@@ -173,8 +174,8 @@ int daAlink_c::procSumouMoveInit() {
|
||||
|
||||
field_0x3198 = anm;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar1.field_0x300a = 0x4B;
|
||||
setFootEffectProcType(5);
|
||||
@@ -228,7 +229,7 @@ int daAlink_c::procSumouMove() {
|
||||
field_0x32cc = Z2SE_AL_V_SUMO_HOLD_BACK;
|
||||
field_0x3198 = ANM_SUMOU_PUSH_BACK;
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e.x == 0) {
|
||||
} else if (mProcVar3.field_0x300e == 0) {
|
||||
if (mProcVar2.field_0x300c > 0 && doTrigger()) {
|
||||
mProcVar2.field_0x300c--;
|
||||
}
|
||||
@@ -249,7 +250,7 @@ int daAlink_c::procSumouMove() {
|
||||
dMeter2Info_onBlinkButton(1);
|
||||
|
||||
if (mSpecialMode == 0x24 || (mSpeedModifier < 0.0f && mProcVar2.field_0x300c == 0)) {
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x2f99 = 12;
|
||||
|
||||
if (mSpeedModifier > 0.0f) {
|
||||
@@ -287,8 +288,8 @@ int daAlink_c::procSumouMove() {
|
||||
}
|
||||
}
|
||||
} else if (mSpeedModifier < 0.0f) {
|
||||
var_r31 = mProcVar3.field_0x300e.y;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
var_r31 = mProcVar4.field_0x3010;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
|
||||
if (var_r31 != 0) {
|
||||
@@ -450,7 +451,7 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un
|
||||
|
||||
daNpcWrestler_c* wrestler_p = (daNpcWrestler_c*)mCargoCarryAcKeep.getActor();
|
||||
int wrestler_action = wrestler_p->getWrestlerAction();
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
daAlink_ANM anm;
|
||||
if (mSpecialMode == 0x21) {
|
||||
@@ -470,7 +471,7 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un
|
||||
}
|
||||
|
||||
anm = var_r0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
anm = ANM_SUMOU_PUNCH_SHOCK;
|
||||
}
|
||||
@@ -498,7 +499,7 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un
|
||||
}
|
||||
|
||||
anm = var_r0_2;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
anm = ANM_SUMOU_PUNCH_SHOCK;
|
||||
}
|
||||
@@ -552,29 +553,29 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mProcVar3.field_0x300e.x = 0x82;
|
||||
mProcVar3.field_0x300e = 0x82;
|
||||
|
||||
if (mSpecialMode == 0x19) {
|
||||
dComIfGp_setAdvanceDirection(1);
|
||||
mProcVar3.field_0x300e.y = shape_angle.y - 0x2800;
|
||||
mProcVar4.field_0x3010 = shape_angle.y - 0x2800;
|
||||
field_0x2f98 = 2;
|
||||
} else if (mSpecialMode == 0x1A) {
|
||||
field_0x2f98 = 3;
|
||||
dComIfGp_setAdvanceDirection(4);
|
||||
mProcVar3.field_0x300e.y = shape_angle.y + 0x2800;
|
||||
mProcVar4.field_0x3010 = shape_angle.y + 0x2800;
|
||||
} else if (i_doTrigger) {
|
||||
setDoStatusEmphasys(0x15);
|
||||
mProcVar3.field_0x300e.x = 0x15;
|
||||
mProcVar3.field_0x300e = 0x15;
|
||||
field_0x2f98 = 4;
|
||||
} else if (i_punchTrigger) {
|
||||
setSumouPunchStatus();
|
||||
mProcVar3.field_0x300e.x = 0x44;
|
||||
mProcVar3.field_0x300e = 0x44;
|
||||
field_0x2f98 = 4;
|
||||
} else if (!checkZeroSpeedF()) {
|
||||
if (field_0x2f98 == 2) {
|
||||
mProcVar3.field_0x300e.y = shape_angle.y - 0x2800;
|
||||
mProcVar4.field_0x3010 = shape_angle.y - 0x2800;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = shape_angle.y + 0x2800;
|
||||
mProcVar4.field_0x3010 = shape_angle.y + 0x2800;
|
||||
}
|
||||
} else {
|
||||
field_0x2f98 = 4;
|
||||
@@ -669,12 +670,12 @@ int daAlink_c::procSumouAction() {
|
||||
}
|
||||
|
||||
if (mSpecialMode == 0x19 || mSpecialMode == 0x1A) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e.y, 2, 0x400, 0x40);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 2, 0x400, 0x40);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
current.pos.set(field_0x37c8.x - field_0x3478 * cM_ssin(current.angle.y), field_0x37c8.y,
|
||||
field_0x37c8.z - field_0x3478 * cM_scos(current.angle.y));
|
||||
if (mProcVar2.field_0x300c >= 29 || shape_angle.y == mProcVar3.field_0x300e.y) {
|
||||
if (mProcVar2.field_0x300c >= 29 || shape_angle.y == mProcVar4.field_0x3010) {
|
||||
procSumouSideMoveInit();
|
||||
}
|
||||
} else {
|
||||
@@ -684,8 +685,8 @@ int daAlink_c::procSumouAction() {
|
||||
cLib_targetAngleY(¤t.pos, &mCargoCarryAcKeep.getActor()->current.pos), 2,
|
||||
0x2000, 0x800);
|
||||
current.angle.y = shape_angle.y;
|
||||
} else if (mSpecialMode == 0x1E && mProcVar3.field_0x300e.z != 0) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e.y, 2, 0x400, 0x40);
|
||||
} else if (mSpecialMode == 0x1E && mProcVar5.field_0x3012 != 0) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 2, 0x400, 0x40);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
current.pos.set(field_0x37c8.x - field_0x3478 * cM_ssin(current.angle.y),
|
||||
@@ -699,9 +700,9 @@ int daAlink_c::procSumouAction() {
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
if (mProcVar3.field_0x300e.x == 0x15) {
|
||||
if (mProcVar3.field_0x300e == 0x15) {
|
||||
setDoStatusEmphasys(0x15);
|
||||
} else if (mProcVar3.field_0x300e.x == 0x44) {
|
||||
} else if (mProcVar3.field_0x300e == 0x44) {
|
||||
setSumouPunchStatus();
|
||||
}
|
||||
|
||||
@@ -717,11 +718,11 @@ int daAlink_c::procSumouAction() {
|
||||
} else {
|
||||
procSumouMoveInit();
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e.z != 0) {
|
||||
} else if (mProcVar5.field_0x3012 != 0) {
|
||||
if (mProcVar2.field_0x300c > 12.0f) {
|
||||
setSingleAnime(ANM_SUMOU_PUNCH_SHOCK, 1.0f, mProcVar2.field_0x300c, -1, 3.0f);
|
||||
field_0x2f99 = 12;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
voiceStart(Z2SE_AL_V_SUMO_HARITE_DMG);
|
||||
field_0x3198 = 0x152;
|
||||
}
|
||||
@@ -832,7 +833,7 @@ int daAlink_c::procSumouWinLoseInit() {
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
speed.y = 0.0f;
|
||||
setFootEffectProcType(5);
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
field_0x33b0 = 20.0f;
|
||||
return 1;
|
||||
}
|
||||
@@ -840,7 +841,7 @@ int daAlink_c::procSumouWinLoseInit() {
|
||||
|
||||
/* 800EC3D8-800EC538 0E6D18 0160+00 1/0 0/0 0/0 .text procSumouWinLose__9daAlink_cFv */
|
||||
int daAlink_c::procSumouWinLose() {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
field_0x2f99 = 4;
|
||||
} else {
|
||||
@@ -855,7 +856,7 @@ int daAlink_c::procSumouWinLose() {
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
if (mProcVar2.field_0x300c != 0 || mProcVar3.field_0x300e.x != 0) {
|
||||
if (mProcVar2.field_0x300c != 0 || mProcVar3.field_0x300e != 0) {
|
||||
cancelSumouMode();
|
||||
procWaitInit();
|
||||
} else {
|
||||
@@ -864,9 +865,9 @@ int daAlink_c::procSumouWinLose() {
|
||||
field_0x3478 = 1000.0f;
|
||||
field_0x3198 = ANM_SUMOU_KNOCKED_DOWN;
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e.x == 0 && mSpecialMode == 0x25) {
|
||||
} else if (mProcVar3.field_0x300e == 0 && mSpecialMode == 0x25) {
|
||||
setSingleAnimeBase(ANM_SUMOU_GET_UP);
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x3478 = 1000.0f;
|
||||
field_0x3198 = ANM_SUMOU_GET_UP;
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) {
|
||||
}
|
||||
|
||||
/* 80101D70-801023E4 0FC6B0 0674+00 2/2 0/0 0/0 .text swimBgCheck__9daAlink_cFf */
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING
|
||||
void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
offNoResetFlg1(FLG1_UNK_20000000);
|
||||
|
||||
@@ -205,11 +205,6 @@ void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
field_0x3092 = cM_atan2s(-fvar14, -fvar15);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 801023E4-801029C8 0FCD24 05E4+00 3/3 0/0 0/0 .text setSpeedAndAngleSwim__9daAlink_cFv
|
||||
*/
|
||||
@@ -369,7 +364,7 @@ int daAlink_c::procSwimUpInit() {
|
||||
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mResurfaceAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3000 = 0;
|
||||
|
||||
@@ -422,10 +417,10 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
|
||||
if (param_0) {
|
||||
seStartMapInfo(Z2SE_AL_INTO_WATER);
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
} else if (!mode_40000) {
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
}
|
||||
|
||||
@@ -526,7 +521,7 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
if (!mode_40000) {
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
|
||||
if (proc_swim_dive || proc_dive_jump) {
|
||||
@@ -534,8 +529,8 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
if (proc_dive_jump) {
|
||||
field_0x3080 = 0x2800;
|
||||
mProcVar3.field_0x300e.x = field_0x3080;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e = field_0x3080;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
}
|
||||
} else {
|
||||
@@ -613,7 +608,7 @@ int daAlink_c::procSwimDiveInit() {
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3000 = 30;
|
||||
@@ -657,8 +652,8 @@ int daAlink_c::procSwimDive() {
|
||||
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
field_0x3080 = 0x2800;
|
||||
mProcVar3.field_0x300e.x = field_0x3080;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e = field_0x3080;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
@@ -700,7 +695,7 @@ int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
setHookshotReadyMaterial();
|
||||
@@ -778,7 +773,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
|
||||
}
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x104000);
|
||||
@@ -841,8 +836,7 @@ int daAlink_c::procSwimHookshotMove() {
|
||||
|
||||
/* 8010519C-80105728 0FFADC 058C+00 1/1 0/0 0/0 .text
|
||||
* procSwimDamageInit__9daAlink_cFP12dCcD_GObjInf */
|
||||
// instruction block order issue
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - instruction block order issue
|
||||
int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
|
||||
dComIfGp_getVibration().StartShock(2, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
@@ -921,12 +915,6 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80105728-801058A0 100068 0178+00 1/0 0/0 0/0 .text procSwimDamage__9daAlink_cFv */
|
||||
int daAlink_c::procSwimDamage() {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
|
||||
/* 8013FF28-8013FF90 13A868 0068+00 2/2 0/0 0/0 .text setArcName__9daAlink_cFi */
|
||||
void daAlink_c::setArcName(BOOL i_isWolf) {
|
||||
@@ -386,4 +387,4 @@ void daAlink_c::resetStatusWindow() {
|
||||
|
||||
offNoResetFlg2(FLG2_STATUS_WINDOW_DRAW);
|
||||
m_sWindowBck = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,9 +75,9 @@ int daAlink_c::procGrassWhistleGetInit() {
|
||||
|
||||
daObjYobikusa_c* yobikusa_p = (daObjYobikusa_c*)field_0x27f4;
|
||||
mProcVar2.field_0x300c = yobikusa_p->getType();
|
||||
mProcVar3.field_0x300e.x = yobikusa_p->getPathID();
|
||||
mProcVar3.field_0x300e.y = yobikusa_p->isPlayerCorrect();
|
||||
mProcVar3.field_0x300e.z = yobikusa_p->shape_angle.y + 0x8000;
|
||||
mProcVar3.field_0x300e = yobikusa_p->getPathID();
|
||||
mProcVar4.field_0x3010 = yobikusa_p->isPlayerCorrect();
|
||||
mProcVar5.field_0x3012 = yobikusa_p->shape_angle.y + 0x8000;
|
||||
field_0x37c8.set(yobikusa_p->current.pos.x + cM_ssin(yobikusa_p->shape_angle.y) * 50.0f,
|
||||
yobikusa_p->current.pos.y + 50.0f,
|
||||
yobikusa_p->current.pos.z + cM_scos(yobikusa_p->shape_angle.y) * 50.0f);
|
||||
@@ -92,8 +92,8 @@ int daAlink_c::procGrassWhistleGet() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
|
||||
if (frameCtrl_p->checkAnmEnd()) {
|
||||
procGrassWhistleWaitInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e.x,
|
||||
mProcVar3.field_0x300e.y, mProcVar3.field_0x300e.z, &field_0x37c8);
|
||||
procGrassWhistleWaitInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e,
|
||||
mProcVar4.field_0x3010, mProcVar5.field_0x3012, &field_0x37c8);
|
||||
} else if (mEquipItem == NO_ITEM && frameCtrl_p->getFrame() >= 9.0f) {
|
||||
setGrassWhistleModel(mProcVar2.field_0x300c);
|
||||
|
||||
@@ -146,12 +146,12 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s
|
||||
setUpperAnimeBaseMorf(getMainBckData(ANM_GRASS_WHISTLE_START)->m_underID, -1.0f);
|
||||
setFacePriAnime(ANM_GRASS_WHISTLE_START);
|
||||
mProcVar2.field_0x300c = param_0;
|
||||
mProcVar3.field_0x300e.x = param_1;
|
||||
mProcVar3.field_0x300e = param_1;
|
||||
|
||||
dCam_getBody()->StartEventCamera(12, fopAcM_GetID(this), 0);
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
mMsgClassID = -1;
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -176,10 +176,9 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s
|
||||
|
||||
/* 80111CA4-80111FF0 10C5E4 034C+00 1/0 0/0 0/0 .text procGrassWhistleWait__9daAlink_cFv
|
||||
*/
|
||||
// small regalloc
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING - small regalloc
|
||||
int daAlink_c::procGrassWhistleWait() {
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
if (mProcVar5.field_0x3012 != 0) {
|
||||
if (checkEndMessage(field_0x32cc)) {
|
||||
resetSpecialEvent();
|
||||
return procWaitInit();
|
||||
@@ -206,7 +205,7 @@ int daAlink_c::procGrassWhistleWait() {
|
||||
|
||||
if (field_0x3198 == 0x100) {
|
||||
tk_p->setEvent();
|
||||
tk_p->setHawkPath(mProcVar3.field_0x300e.x);
|
||||
tk_p->setHawkPath(mProcVar3.field_0x300e);
|
||||
}
|
||||
|
||||
mProcVar0.field_0x3008--;
|
||||
@@ -227,7 +226,7 @@ int daAlink_c::procGrassWhistleWait() {
|
||||
}
|
||||
|
||||
setFaceBasicTexture(FTANM_UNK_0);
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -270,23 +269,17 @@ int daAlink_c::procGrassWhistleWait() {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int daAlink_c::procGrassWhistleWait() {
|
||||
// NONMATCHING
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80111FF0-801120C8 10C930 00D8+00 2/2 0/0 0/0 .text procCoHorseCallWaitInit__9daAlink_cFi */
|
||||
int daAlink_c::procCoHorseCallWaitInit(int param_0) {
|
||||
commonProcInit(PROC_HORSE_CALL_WAIT);
|
||||
|
||||
if (param_0 == 4) {
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
mProcVar4.field_0x3010 = 2;
|
||||
} else if (param_0 == 1) {
|
||||
mProcVar3.field_0x300e.y = 0x3D;
|
||||
mProcVar4.field_0x3010 = 0x3D;
|
||||
} else {
|
||||
mProcVar3.field_0x300e.y = 0x10;
|
||||
mProcVar4.field_0x3010 = 0x10;
|
||||
}
|
||||
|
||||
if (checkWolf()) {
|
||||
|
||||
+180
-229
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@
|
||||
#include "d/d_bomb.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_meter2.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_msg_object.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
@@ -1080,4 +1081,4 @@ static u8 data_8067EBF0[4];
|
||||
static u8 data_8067EBF4[4];
|
||||
#pragma pop
|
||||
|
||||
/* 8067E96C-8067E96C 0000EC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 8067E96C-8067E96C 0000EC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+355
-508
@@ -1,170 +1,34 @@
|
||||
/**
|
||||
* @file d_a_obj_iceleaf.cpp
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_iceleaf.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void CheckCreateHeap__FP10fopAc_ac_c();
|
||||
extern "C" void initBaseMtx__14daObjIceLeaf_cFv();
|
||||
extern "C" void setBaseMtx__14daObjIceLeaf_cFv();
|
||||
extern "C" void Create__14daObjIceLeaf_cFv();
|
||||
extern "C" void setAnmPos__14daObjIceLeaf_cFv();
|
||||
extern "C" void CreateHeap__14daObjIceLeaf_cFv();
|
||||
extern "C" void __dt__12J3DFrameCtrlFv();
|
||||
extern "C" void create__14daObjIceLeaf_cFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__10dCcD_GSttsFv();
|
||||
extern "C" void __dt__12dBgS_AcchCirFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" void execute__14daObjIceLeaf_cFv();
|
||||
extern "C" void action__14daObjIceLeaf_cFv();
|
||||
extern "C" void modeDropWait__14daObjIceLeaf_cFv();
|
||||
extern "C" void modeDrop__14daObjIceLeaf_cFv();
|
||||
extern "C" void modePlayerWait__14daObjIceLeaf_cFv();
|
||||
extern "C" void modeRide__14daObjIceLeaf_cFv();
|
||||
extern "C" void event_proc_call__14daObjIceLeaf_cFv();
|
||||
extern "C" void actionWait__14daObjIceLeaf_cFv();
|
||||
extern "C" void actionOrderEvent__14daObjIceLeaf_cFv();
|
||||
extern "C" void actionEvent__14daObjIceLeaf_cFv();
|
||||
extern "C" void actionDead__14daObjIceLeaf_cFv();
|
||||
extern "C" void setFallSE__14daObjIceLeaf_cFv();
|
||||
extern "C" void draw__14daObjIceLeaf_cFv();
|
||||
extern "C" void _delete__14daObjIceLeaf_cFv();
|
||||
extern "C" static void daObjIceLeaf_Draw__FP14daObjIceLeaf_c();
|
||||
extern "C" static void daObjIceLeaf_Execute__FP14daObjIceLeaf_c();
|
||||
extern "C" static void daObjIceLeaf_Delete__FP14daObjIceLeaf_c();
|
||||
extern "C" static void daObjIceLeaf_Create__FP14daObjIceLeaf_c();
|
||||
extern "C" void __dt__10cCcD_GSttsFv();
|
||||
extern "C" static void func_80C25D4C();
|
||||
extern "C" static void func_80C25D54();
|
||||
extern "C" extern char const* const d_a_obj_iceleaf__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void transM__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void play__14mDoExt_baseAnmFv();
|
||||
extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb();
|
||||
extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
|
||||
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
|
||||
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void isEventBit__11dSv_event_cCFUs();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void reset__14dEvt_control_cFv();
|
||||
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc();
|
||||
extern "C" void endCheck__16dEvent_manager_cFs();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void
|
||||
setPoly__13dPa_control_cFUsR13cBgS_PolyInfoPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyziP18dPa_levelEcallBackScPC4cXyz();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void SetWall__12dBgS_AcchCirFff();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
|
||||
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
|
||||
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void Set__4cCcSFP8cCcD_Obj();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void __dt__13cBgS_PolyInfoFv();
|
||||
extern "C" void __dt__8cM3dGCirFv();
|
||||
extern "C" void SetC__8cM3dGCylFRC4cXyz();
|
||||
extern "C" void SetH__8cM3dGCylFf();
|
||||
extern "C" void SetR__8cM3dGCylFf();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80C25F98[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 80C24718-80C24738 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
static void CheckCreateHeap(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
return ((daObjIceLeaf_c*)i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 80C24738-80C24774 000098 003C+00 1/1 0/0 0/0 .text initBaseMtx__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::initBaseMtx() {
|
||||
// NONMATCHING
|
||||
mpModel->setBaseScale(scale);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C25D64-80C25D68 000000 0004+00 5/5 0/0 0/0 .rodata @3703 */
|
||||
SECTION_RODATA static u8 const lit_3703[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C25D64, &lit_3703);
|
||||
|
||||
/* 80C25D68-80C25D6C 000004 0004+00 1/1 0/0 0/0 .rodata @3704 */
|
||||
SECTION_RODATA static f32 const lit_3704 = -9.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D68, &lit_3704);
|
||||
|
||||
/* 80C25DA4-80C25DA4 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C25DA4 = "V_IceLeaf";
|
||||
#pragma pop
|
||||
|
||||
/* 80C25DB0-80C25DBC 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
|
||||
static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80C25DBC-80C25DD0 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
0x02000201,
|
||||
/* padding */
|
||||
0x40080000,
|
||||
@@ -175,453 +39,436 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
#pragma pop
|
||||
|
||||
/* 80C25DD0-80C25DD4 -00001 0004+00 7/7 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_iceleaf__stringBase0;
|
||||
static char* l_arcName = "V_IceLeaf";
|
||||
|
||||
/* 80C24774-80C249E4 0000D4 0270+00 2/2 0/0 0/0 .text setBaseMtx__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
if (mRide) {
|
||||
daPy_py_c* player = dComIfGp_getLinkPlayer();
|
||||
s16 foot_angle = 0;
|
||||
|
||||
if (!player->checkBoardNoFootAngle()) {
|
||||
Vec left_vec;
|
||||
Vec right_vec;
|
||||
mDoMtx_multVec(player->getInvMtx(), player->getRightFootPosP(), &right_vec);
|
||||
mDoMtx_multVec(player->getInvMtx(), player->getLeftFootPosP(), &left_vec);
|
||||
|
||||
foot_angle = cM_atan2s(left_vec.y - right_vec.y, right_vec.z - left_vec.z);
|
||||
}
|
||||
|
||||
cXyz sp44(KREG_F(15), -9.0f, 0.0f);
|
||||
|
||||
mDoMtx_stack_c::copy(player->getModelMtx());
|
||||
mDoMtx_stack_c::ZXYrotM(foot_angle, player->getBoardCutTurnOffsetAngleY(), 0);
|
||||
mDoMtx_stack_c::YrotM(0x4000);
|
||||
mDoMtx_stack_c::transM(sp44);
|
||||
mDoMtx_stack_c::multVecZero(&eyePos);
|
||||
} else {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
}
|
||||
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
if (mpBck == NULL) {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
} else {
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(0x106, pbck != 0);
|
||||
pbck->getTransform(0, &mTransformInfo);
|
||||
|
||||
cXyz pos;
|
||||
csXyz angle;
|
||||
mDoMtx_stack_c::transS(mTransformInfo.mTranslate.x, mTransformInfo.mTranslate.y,
|
||||
mTransformInfo.mTranslate.z);
|
||||
mDoMtx_stack_c::transM(current.pos);
|
||||
mDoMtx_stack_c::multVecZero(&pos);
|
||||
|
||||
angle.x = shape_angle.x + mTransformInfo.mRotation.x;
|
||||
angle.y = shape_angle.y + mTransformInfo.mRotation.y;
|
||||
angle.z = shape_angle.z + mTransformInfo.mRotation.z;
|
||||
mDoMtx_stack_c::transS(pos);
|
||||
mDoMtx_stack_c::ZXYrotM(angle);
|
||||
}
|
||||
|
||||
MTXCopy(mDoMtx_stack_c::get(), mMtx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C25D6C-80C25D70 000008 0004+00 0/1 0/0 0/0 .rodata @3757 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3757 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D6C, &lit_3757);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25D70-80C25D74 00000C 0004+00 0/1 0/0 0/0 .rodata @3758 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3758 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D70, &lit_3758);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25D74-80C25D78 000010 0004+00 0/1 0/0 0/0 .rodata @3759 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3759 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D74, &lit_3759);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25DD4-80C25E18 000024 0044+00 1/1 0/0 0/0 .data l_cyl_src */
|
||||
static dCcD_SrcCyl l_cyl_src = {
|
||||
{
|
||||
{0x0, {{0x0, 0x0, 0x1f}, {0x400000, 0x11}, 0x78}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{0x0, {{0x0, 0x0, 0x1f}, {0x400000, 0x11}, 0x78}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
50.0f, // mRadius
|
||||
100.0f // mHeight
|
||||
} // mCyl
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
50.0f, // mRadius
|
||||
100.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
/* 80C249E4-80C24BC4 000344 01E0+00 1/1 0/0 0/0 .text Create__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::Create() {
|
||||
// NONMATCHING
|
||||
// NONMATCHING - J3DTransformInfo operator= seems to be inline asm, needs work
|
||||
int daObjIceLeaf_c::Create() {
|
||||
J3DJoint* joint = mpModel->getModelData()->getJointNodePointer(0);
|
||||
mTransformInfo = joint->getTransformInfo();
|
||||
|
||||
J3DTransformInfo trans_info(mTransformInfo);
|
||||
trans_info.mRotation.x = 0;
|
||||
trans_info.mRotation.y = 0;
|
||||
trans_info.mRotation.z = 0;
|
||||
trans_info.mTranslate.x = 0.0f;
|
||||
trans_info.mTranslate.y = 0.0f;
|
||||
trans_info.mTranslate.z = 0.0f;
|
||||
joint->setTransformInfo(trans_info);
|
||||
|
||||
initBaseMtx();
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
|
||||
mAcchCir.SetWall(30.0f, 30.0f);
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
|
||||
fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
|
||||
mStts.Init(0, 0xFF, this);
|
||||
mCyl.Set(l_cyl_src);
|
||||
mCyl.SetStts(&mStts);
|
||||
mCyl.SetR(100.0f);
|
||||
mCyl.SetH(500.0f);
|
||||
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
|
||||
mEvId = getEvId();
|
||||
mEventID = dComIfGp_getEventManager().getEventIdx(this, mEvId);
|
||||
|
||||
if (checkRideStatus() == 1) {
|
||||
mRide = true;
|
||||
mpBck = NULL;
|
||||
setAnmPos();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C24BC4-80C24C9C 000524 00D8+00 2/2 0/0 0/0 .text setAnmPos__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::setAnmPos() {
|
||||
// NONMATCHING
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(0x168, pbck != 0);
|
||||
pbck->getTransform(0, &mTransformInfo);
|
||||
|
||||
mDoMtx_stack_c::transS(mTransformInfo.mTranslate.x, mTransformInfo.mTranslate.y,
|
||||
mTransformInfo.mTranslate.z);
|
||||
mDoMtx_stack_c::transM(current.pos);
|
||||
mDoMtx_stack_c::multVecZero(¤t.pos);
|
||||
|
||||
shape_angle.x += mTransformInfo.mRotation.x;
|
||||
shape_angle.y += mTransformInfo.mRotation.y;
|
||||
shape_angle.z += mTransformInfo.mRotation.z;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C25D78-80C25D7C 000014 0004+00 4/5 0/0 0/0 .rodata @3806 */
|
||||
SECTION_RODATA static f32 const lit_3806 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D78, &lit_3806);
|
||||
|
||||
/* 80C25E18-80C25E24 -00001 000C+00 0/1 0/0 0/0 .data @3975 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3975[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)modeDropWait__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E24-80C25E30 -00001 000C+00 0/1 0/0 0/0 .data @3976 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3976[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)modeDrop__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E30-80C25E3C -00001 000C+00 0/1 0/0 0/0 .data @3977 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3977[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)modePlayerWait__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E3C-80C25E48 -00001 000C+00 0/1 0/0 0/0 .data @3978 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3978[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)modeRide__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E48-80C25E78 000098 0030+00 0/1 0/0 0/0 .data l_func$3974 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_func_3974[48] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E78-80C25E84 -00001 000C+00 0/1 0/0 0/0 .data @4108 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4108[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionWait__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E84-80C25E90 -00001 000C+00 0/1 0/0 0/0 .data @4109 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4109[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionOrderEvent__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E90-80C25E9C -00001 000C+00 0/1 0/0 0/0 .data @4110 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4110[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionEvent__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25E9C-80C25EA8 -00001 000C+00 0/1 0/0 0/0 .data @4111 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4111[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionDead__14daObjIceLeaf_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25EA8-80C25ED8 0000F8 0030+00 0/1 0/0 0/0 .data l_func$4107 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_func_4107[48] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C25ED8-80C25EF8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjIceLeaf_Method */
|
||||
static actor_method_class l_daObjIceLeaf_Method = {
|
||||
(process_method_func)daObjIceLeaf_Create__FP14daObjIceLeaf_c,
|
||||
(process_method_func)daObjIceLeaf_Delete__FP14daObjIceLeaf_c,
|
||||
(process_method_func)daObjIceLeaf_Execute__FP14daObjIceLeaf_c,
|
||||
0,
|
||||
(process_method_func)daObjIceLeaf_Draw__FP14daObjIceLeaf_c,
|
||||
};
|
||||
|
||||
/* 80C25EF8-80C25F28 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_IceLeaf */
|
||||
extern actor_process_profile_definition g_profile_Obj_IceLeaf = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_IceLeaf, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daObjIceLeaf_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
567, // mPriority
|
||||
&l_daObjIceLeaf_Method, // sub_method
|
||||
0x00060000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80C25F28-80C25F34 000178 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
|
||||
SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_AcchCirFv,
|
||||
};
|
||||
|
||||
/* 80C25F34-80C25F40 000184 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
|
||||
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__10cCcD_GSttsFv,
|
||||
};
|
||||
|
||||
/* 80C25F40-80C25F4C 000190 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
|
||||
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__10dCcD_GSttsFv,
|
||||
};
|
||||
|
||||
/* 80C25F4C-80C25F58 00019C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
|
||||
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGCylFv,
|
||||
};
|
||||
|
||||
/* 80C25F58-80C25F64 0001A8 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 80C25F64-80C25F88 0001B4 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80C25D54,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80C25D4C,
|
||||
};
|
||||
|
||||
/* 80C25F88-80C25F94 0001D8 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
|
||||
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DFrameCtrlFv,
|
||||
};
|
||||
|
||||
/* 80C24C9C-80C24DCC 0005FC 0130+00 1/1 0/0 0/0 .text CreateHeap__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
int daObjIceLeaf_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 7);
|
||||
JUT_ASSERT(0x189, modelData != 0);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80C24DCC-80C24E14 00072C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
||||
// J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
extern "C" void __dt__12J3DFrameCtrlFv() {
|
||||
// NONMATCHING
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(0x196, pbck != 0);
|
||||
|
||||
mpBck = new mDoExt_bckAnm();
|
||||
if (mpBck == NULL || !mpBck->init(pbck, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, false)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mpBck->setPlaySpeed(0.0f);
|
||||
mpBck->setFrame(0.0f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C24E14-80C24F8C 000774 0178+00 1/1 0/0 0/0 .text create__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
int daObjIceLeaf_c::create() {
|
||||
fopAcM_SetupActor(this, daObjIceLeaf_c);
|
||||
|
||||
/* 80C24F8C-80C24FD4 0008EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
// cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" void __dt__8cM3dGCylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
int phase_state = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0xDA0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
/* 80C24FD4-80C2501C 000934 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
if (!Create()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C2501C-80C25078 00097C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
||||
// dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" void __dt__10dCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C25078-80C250E8 0009D8 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
|
||||
// dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
extern "C" void __dt__12dBgS_AcchCirFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C250E8-80C25158 000A48 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 80C25158-80C25360 000AB8 0208+00 1/1 0/0 0/0 .text execute__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::execute() {
|
||||
// NONMATCHING
|
||||
int daObjIceLeaf_c::execute() {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
|
||||
event_proc_call();
|
||||
action();
|
||||
|
||||
if (mDeleteActor) {
|
||||
if (field_0x92b == 0) {
|
||||
dComIfGp_particle_set(0x8C12, &eyePos, NULL, NULL);
|
||||
dComIfGp_particle_set(0x8C13, &eyePos, NULL, NULL);
|
||||
|
||||
field_0x92b = 1;
|
||||
player->seStartOnlyReverb(Z2SE_AL_SNOBO_ICEBREAK);
|
||||
}
|
||||
|
||||
fopAcM_delete(this);
|
||||
// "Ice Leaf: Deleted\n"
|
||||
OS_REPORT("氷の葉:削除されました\n");
|
||||
}
|
||||
|
||||
if (mBreakEffect) {
|
||||
dComIfGp_particle_set(0x8C12, &eyePos, NULL, NULL);
|
||||
dComIfGp_particle_set(0x8C13, &eyePos, NULL, NULL);
|
||||
|
||||
mBreakEffect = false;
|
||||
player->seStartOnlyReverb(Z2SE_AL_SNOBO_ICEBREAK);
|
||||
}
|
||||
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C25360-80C2541C 000CC0 00BC+00 1/1 0/0 0/0 .text action__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::action() {
|
||||
// NONMATCHING
|
||||
typedef void (daObjIceLeaf_c::*mode_func)();
|
||||
static mode_func l_func[] = {
|
||||
&daObjIceLeaf_c::modeDropWait,
|
||||
&daObjIceLeaf_c::modeDrop,
|
||||
&daObjIceLeaf_c::modePlayerWait,
|
||||
&daObjIceLeaf_c::modeRide,
|
||||
};
|
||||
|
||||
(this->*l_func[mMode])();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C25D7C-80C25D84 000018 0008+00 0/1 0/0 0/0 .rodata @4030 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4030[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C25D7C, &lit_4030);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25D84-80C25D8C 000020 0008+00 0/1 0/0 0/0 .rodata @4031 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4031[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C25D84, &lit_4031);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25D8C-80C25D94 000028 0008+00 0/1 0/0 0/0 .rodata @4032 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4032[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C25D8C, &lit_4032);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25D94-80C25D98 000030 0004+00 0/1 0/0 0/0 .rodata @4033 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4033 = 250.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D94, &lit_4033);
|
||||
#pragma pop
|
||||
|
||||
/* 80C2541C-80C25614 000D7C 01F8+00 1/0 0/0 0/0 .text modeDropWait__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::modeDropWait() {
|
||||
// NONMATCHING
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x134])) {
|
||||
bool start_drop = false;
|
||||
if (player->current.pos.abs(current.pos) < 250.0f &&
|
||||
(player->checkFrontRollCrash() || player->checkWolfAttackReverse()))
|
||||
{
|
||||
start_drop = true;
|
||||
}
|
||||
|
||||
if (mCyl.ChkTgHit()) {
|
||||
cCcD_Obj* hit_obj = mCyl.GetTgHitObj();
|
||||
if (hit_obj != NULL && hit_obj->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
start_drop = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (start_drop) {
|
||||
setAction(ACT_ORDER_EVENT_e);
|
||||
}
|
||||
}
|
||||
|
||||
if (mRide) {
|
||||
mpBck = NULL;
|
||||
setAnmPos();
|
||||
}
|
||||
|
||||
mCyl.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C25D98-80C25D9C 000034 0004+00 0/1 0/0 0/0 .rodata @4093 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4093 = 12.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D98, &lit_4093);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25D9C-80C25DA0 000038 0004+00 0/1 0/0 0/0 .rodata @4094 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4094 = 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25D9C, &lit_4094);
|
||||
#pragma pop
|
||||
|
||||
/* 80C25DA0-80C25DA4 00003C 0004+00 1/2 0/0 0/0 .rodata @4095 */
|
||||
SECTION_RODATA static f32 const lit_4095 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C25DA0, &lit_4095);
|
||||
|
||||
/* 80C25614-80C258F8 000F74 02E4+00 1/0 0/0 0/0 .text modeDrop__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::modeDrop() {
|
||||
// NONMATCHING
|
||||
if (mpBck->play()) {
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(0x2C8, pbck != 0);
|
||||
pbck->getTransform(0, &mTransformInfo);
|
||||
|
||||
mDoMtx_stack_c::transS(mTransformInfo.mTranslate.x, mTransformInfo.mTranslate.y,
|
||||
mTransformInfo.mTranslate.z);
|
||||
mDoMtx_stack_c::transM(current.pos);
|
||||
mDoMtx_stack_c::multVecZero(¤t.pos);
|
||||
|
||||
shape_angle.x += mTransformInfo.mRotation.x;
|
||||
shape_angle.y += mTransformInfo.mRotation.y;
|
||||
shape_angle.z += mTransformInfo.mRotation.z;
|
||||
|
||||
attention_info.position = current.pos;
|
||||
eyePos = current.pos;
|
||||
|
||||
mpBck = NULL;
|
||||
setMode(MODE_PLAYER_WAIT_e);
|
||||
}
|
||||
|
||||
if (mpBck != NULL && mpBck->getFrame() == 12) {
|
||||
cXyz sp24(KREG_F(10) + 1.0f, KREG_F(10) + 1.0f, KREG_F(10) + 1.0f);
|
||||
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(0x2EB, pbck != 0);
|
||||
pbck->getTransform(0, &mTransformInfo);
|
||||
|
||||
cXyz sp30;
|
||||
mDoMtx_stack_c::transS(mTransformInfo.mTranslate.x, mTransformInfo.mTranslate.y,
|
||||
mTransformInfo.mTranslate.z);
|
||||
mDoMtx_stack_c::transM(current.pos);
|
||||
mDoMtx_stack_c::multVecZero(&sp30);
|
||||
sp30.y += 5.0f;
|
||||
|
||||
if (fopAcM_gc_c::gndCheck(&sp30)) {
|
||||
dComIfGp_particle_setPolyColor(0x881F, *fopAcM_gc_c::getGroundCheck(), &sp30, &tevStr,
|
||||
¤t.angle, &sp24, 0, NULL, -1, NULL);
|
||||
dComIfGp_particle_setPolyColor(0x8820, *fopAcM_gc_c::getGroundCheck(), &sp30, &tevStr,
|
||||
¤t.angle, &sp24, 0, NULL, -1, NULL);
|
||||
|
||||
mFallSEPos = sp30;
|
||||
mDoAud_seStart(Z2SE_OBJ_LEAF_FALL_DOWN, &mFallSEPos, 0, 0);
|
||||
// "Ice Leaf: Falling SE\n"
|
||||
OS_REPORT("氷の葉:落下SE\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C258F8-80C25904 001258 000C+00 1/0 0/0 0/0 .text modePlayerWait__14daObjIceLeaf_cFv
|
||||
*/
|
||||
void daObjIceLeaf_c::modePlayerWait() {
|
||||
// NONMATCHING
|
||||
attention_info.flags = 0x80;
|
||||
}
|
||||
|
||||
/* 80C25904-80C25908 001264 0004+00 1/0 0/0 0/0 .text modeRide__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::modeRide() {
|
||||
/* empty function */
|
||||
}
|
||||
void daObjIceLeaf_c::modeRide() {}
|
||||
|
||||
/* 80C25908-80C259C4 001268 00BC+00 1/1 0/0 0/0 .text event_proc_call__14daObjIceLeaf_cFv
|
||||
*/
|
||||
void daObjIceLeaf_c::event_proc_call() {
|
||||
// NONMATCHING
|
||||
typedef void (daObjIceLeaf_c::*action_func)();
|
||||
static action_func l_func[] = {
|
||||
&daObjIceLeaf_c::actionWait,
|
||||
&daObjIceLeaf_c::actionOrderEvent,
|
||||
&daObjIceLeaf_c::actionEvent,
|
||||
&daObjIceLeaf_c::actionDead,
|
||||
};
|
||||
|
||||
(this->*l_func[mAction])();
|
||||
}
|
||||
|
||||
/* 80C259C4-80C259C8 001324 0004+00 1/0 0/0 0/0 .text actionWait__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::actionWait() {
|
||||
/* empty function */
|
||||
}
|
||||
void daObjIceLeaf_c::actionWait() {}
|
||||
|
||||
/* 80C259C8-80C25A68 001328 00A0+00 1/0 0/0 0/0 .text actionOrderEvent__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::actionOrderEvent() {
|
||||
// NONMATCHING
|
||||
if (eventInfo.i_checkCommandDemoAccrpt()) {
|
||||
setAction(ACT_EVENT_e);
|
||||
mpBck->setPlaySpeed(1.0f);
|
||||
setMode(MODE_DROP_e);
|
||||
setFallSE();
|
||||
|
||||
fopAcM_onSwitch(this, getSwbit());
|
||||
} else {
|
||||
fopAcM_orderOtherEventId(this, mEventID, mEvId, 0xFFFF, 0, 1);
|
||||
eventInfo.i_onCondition(2);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C25A68-80C25AC4 0013C8 005C+00 1/0 0/0 0/0 .text actionEvent__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::actionEvent() {
|
||||
// NONMATCHING
|
||||
if (dComIfGp_evmng_endCheck(mEventID)) {
|
||||
setAction(ACT_DEAD_e);
|
||||
dComIfGp_event_reset();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C25AC4-80C25AC8 001424 0004+00 1/0 0/0 0/0 .text actionDead__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::actionDead() {
|
||||
/* empty function */
|
||||
}
|
||||
void daObjIceLeaf_c::actionDead() {}
|
||||
|
||||
/* 80C25AC8-80C25BB8 001428 00F0+00 1/1 0/0 0/0 .text setFallSE__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::setFallSE() {
|
||||
// NONMATCHING
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(0x36C, pbck != 0);
|
||||
pbck->getTransform(0, &mTransformInfo);
|
||||
|
||||
mDoMtx_stack_c::transS(mTransformInfo.mTranslate.x, mTransformInfo.mTranslate.y,
|
||||
mTransformInfo.mTranslate.z);
|
||||
mDoMtx_stack_c::transM(current.pos);
|
||||
mDoMtx_stack_c::multVecZero(&mFallStartSEPos);
|
||||
|
||||
mDoAud_seStart(Z2SE_OBJ_LEAF_BEGIN_FALL, &mFallStartSEPos, 0, 0);
|
||||
// "Ice Leaf: Fall start SE(%.2f,%.2f,%.2f)\n"
|
||||
OS_REPORT("氷の葉:落下開始SE(%.2f,%.2f,%.2f)\n", mFallStartSEPos.x, mFallStartSEPos.y,
|
||||
mFallStartSEPos.z);
|
||||
}
|
||||
|
||||
/* 80C25BB8-80C25C50 001518 0098+00 1/1 0/0 0/0 .text draw__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::draw() {
|
||||
// NONMATCHING
|
||||
int daObjIceLeaf_c::draw() {
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
|
||||
if (mpBck != NULL) {
|
||||
mpBck->entry(mpModel->getModelData());
|
||||
}
|
||||
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
mDoExt_bckAnmRemove(mpModel->getModelData());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C25C50-80C25C84 0015B0 0034+00 1/1 0/0 0/0 .text _delete__14daObjIceLeaf_cFv */
|
||||
void daObjIceLeaf_c::_delete() {
|
||||
// NONMATCHING
|
||||
int daObjIceLeaf_c::_delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C25C84-80C25CA4 0015E4 0020+00 1/0 0/0 0/0 .text daObjIceLeaf_Draw__FP14daObjIceLeaf_c */
|
||||
static void daObjIceLeaf_Draw(daObjIceLeaf_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjIceLeaf_Draw(daObjIceLeaf_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* 80C25CA4-80C25CC4 001604 0020+00 1/0 0/0 0/0 .text daObjIceLeaf_Execute__FP14daObjIceLeaf_c */
|
||||
static void daObjIceLeaf_Execute(daObjIceLeaf_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjIceLeaf_Execute(daObjIceLeaf_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 80C25CC4-80C25CE4 001624 0020+00 1/0 0/0 0/0 .text daObjIceLeaf_Delete__FP14daObjIceLeaf_c */
|
||||
static void daObjIceLeaf_Delete(daObjIceLeaf_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjIceLeaf_Delete(daObjIceLeaf_c* i_this) {
|
||||
return i_this->_delete();
|
||||
}
|
||||
|
||||
/* 80C25CE4-80C25D04 001644 0020+00 1/0 0/0 0/0 .text daObjIceLeaf_Create__FP14daObjIceLeaf_c */
|
||||
static void daObjIceLeaf_Create(daObjIceLeaf_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjIceLeaf_Create(daObjIceLeaf_c* i_this) {
|
||||
return i_this->create();
|
||||
}
|
||||
|
||||
/* 80C25D04-80C25D4C 001664 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
// cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" void __dt__10cCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
/* 80C25ED8-80C25EF8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjIceLeaf_Method */
|
||||
static actor_method_class l_daObjIceLeaf_Method = {
|
||||
(process_method_func)daObjIceLeaf_Create, (process_method_func)daObjIceLeaf_Delete,
|
||||
(process_method_func)daObjIceLeaf_Execute, (process_method_func)NULL,
|
||||
(process_method_func)daObjIceLeaf_Draw,
|
||||
};
|
||||
|
||||
/* 80C25D4C-80C25D54 0016AC 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80C25D4C() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C25D54-80C25D5C 0016B4 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80C25D54() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C25DA4-80C25DA4 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 80C25EF8-80C25F28 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_IceLeaf */
|
||||
extern actor_process_profile_definition g_profile_Obj_IceLeaf = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_IceLeaf, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daObjIceLeaf_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
567, // mPriority
|
||||
&l_daObjIceLeaf_Method, // sub_method
|
||||
0x00060000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "d/d_timer.h"
|
||||
#include "d/d_map_path_dmap.h"
|
||||
#include "d/d_menu_fmap.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
|
||||
+4
-4
@@ -1282,7 +1282,7 @@ extern "C" void __dt__15dDemo_ambient_cFv() {
|
||||
|
||||
/* 80039528-80039678 033E68 0150+00 1/0 0/0 0/0 .text
|
||||
* JSGFindObject__14dDemo_system_cCFPPQ26JStage7TObjectPCcQ26JStage8TEObject */
|
||||
bool dDemo_system_c::JSGFindObject(JStage::TObject** p_TObj, char const* actorName,
|
||||
int dDemo_system_c::JSGFindObject(JStage::TObject** p_TObj, char const* actorName,
|
||||
JStage::TEObject objType) const {
|
||||
if (mpObject == NULL) {
|
||||
return true;
|
||||
@@ -1491,10 +1491,10 @@ void dDemo_c::reset() {
|
||||
}
|
||||
|
||||
/* 80039F1C-80039F9C 03485C 0080+00 1/0 0/0 0/0 .text emitter_create__16dDemo_particle_cFUl */
|
||||
void dDemo_particle_c::emitter_create(u32 param_0) {
|
||||
JPABaseEmitter* dDemo_particle_c::emitter_create(u32 param_0) {
|
||||
cXyz tmp(0.0f, 0.0f, 0.0f);
|
||||
int stayNo = dComIfGp_roomControl_getStayNo();
|
||||
dComIfGp_particle_set(param_0, &tmp, NULL, NULL, 0xFF, NULL, stayNo, NULL, NULL, NULL);
|
||||
return dComIfGp_particle_set(param_0, &tmp, NULL, NULL, 0xFF, NULL, stayNo, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1559,4 +1559,4 @@ SECTION_DEAD static char const* const stringBase_8037981E = "デモデータ再
|
||||
SECTION_DEAD static char const* const pad_8037983E = "\0";
|
||||
#pragma pop
|
||||
|
||||
/* 803797F8-803797F8 005E58 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 803797F8-803797F8 005E58 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "d/d_pane_class.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_lib.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "d/d_meter2.h"
|
||||
#include "d/d_meter2_draw.h"
|
||||
#include "d/d_meter_HIO.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_msg_string.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
@@ -2097,4 +2098,4 @@ u8 dMenu_Ring_c::openExplain(u8 param_0) {
|
||||
static const u32 i_nameID[2] = {0x4DE, 0x4E0};
|
||||
static const u32 i_expID[2] = {0x4DF, 0x4E1};
|
||||
return mpItemExplain->openExplainTx(i_nameID[idx], i_expID[idx]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_kantera_icon_meter.h"
|
||||
#include "d/d_meter_HIO.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_msg_class.h"
|
||||
#include "d/d_msg_object.h"
|
||||
#include "d/d_pane_class.h"
|
||||
@@ -4066,4 +4067,4 @@ static u64 const tag_7759[] = {
|
||||
'item_x_n',
|
||||
'item_y_n',
|
||||
'item_j_n',
|
||||
};
|
||||
};
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_msg_object.h"
|
||||
#include "d/d_shop_system.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "dol2asm.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
@@ -2470,4 +2471,4 @@ extern "C" void func_8024DAB0(void* _this, s32* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_meter2.h"
|
||||
#include "d/d_meter2_draw.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/J2DGraph/J2DGrafContext.h"
|
||||
@@ -1098,4 +1099,4 @@ u8 dMsgScrnHowl_c::getGuideDataType(int param_0) {
|
||||
}
|
||||
|
||||
|
||||
/* 80399A20-80399A20 026080 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 80399A20-80399A20 026080 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
Reference in New Issue
Block a user