mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-08 20:24:47 -04:00
d_a_midna mostly done (#2237)
This commit is contained in:
@@ -31,7 +31,7 @@ struct J3DGXColor : public GXColor {
|
||||
/* 8000E538 */ J3DGXColor() {}
|
||||
J3DGXColor(J3DGXColor const& other) { __memcpy(this, &other, sizeof(J3DGXColor)); }
|
||||
J3DGXColor(GXColor const& color) : GXColor(color) {}
|
||||
J3DGXColor& operator=(GXColor color) {
|
||||
J3DGXColor& operator=(const GXColor& color) {
|
||||
*(GXColor*)this = color;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -14,9 +14,72 @@ struct Z2EnemyArea {
|
||||
};
|
||||
|
||||
enum Z2EnemyID {
|
||||
Z2_ENEMY_ID_0,
|
||||
/* 0x00 */ Z2_ENEMY_NULL,
|
||||
/* 0x01 */ Z2_ENEMY_S1,
|
||||
/* 0x02 */ Z2_ENEMY_YK,
|
||||
/* 0x03 */ Z2_ENEMY_YR,
|
||||
/* 0x04 */ Z2_ENEMY_YG,
|
||||
/* 0x05 */ Z2_ENEMY_YC,
|
||||
/* 0x06 */ Z2_ENEMY_YD,
|
||||
/* 0x07 */ Z2_ENEMY_RDY,
|
||||
/* 0x08 */ Z2_ENEMY_YMB,
|
||||
/* 0x09 */ Z2_ENEMY_UNK,
|
||||
/* 0x0A */ Z2_ENEMY_WB,
|
||||
/* 0x0B */ Z2_ENEMY_RD,
|
||||
/* 0x0C */ Z2_ENEMY_DN,
|
||||
/* 0x0D */ Z2_ENEMY_KR,
|
||||
/* 0x0E */ Z2_ENEMY_ST,
|
||||
/* 0x0F */ Z2_ENEMY_TK,
|
||||
/* 0x10 */ Z2_ENEMY_TK2,
|
||||
/* 0x11 */ Z2_ENEMY_CR,
|
||||
/* 0x12 */ Z2_ENEMY_DF,
|
||||
/* 0x13 */ Z2_ENEMY_FS,
|
||||
/* 0x14 */ Z2_ENEMY_SB,
|
||||
/* 0x15 */ Z2_ENEMY_PM,
|
||||
/* 0x16 */ Z2_ENEMY_DB,
|
||||
/* 0x17 */ Z2_ENEMY_KG,
|
||||
/* 0x18 */ Z2_ENEMY_SH,
|
||||
/* 0x19 */ Z2_ENEMY_SF,
|
||||
/* 0x1A */ Z2_ENEMY_BS,
|
||||
/* 0x1B */ Z2_ENEMY_SM,
|
||||
/* 0x1C */ Z2_ENEMY_BA,
|
||||
/* 0x1D */ Z2_ENEMY_BU,
|
||||
/* 0x1E */ Z2_ENEMY_HM,
|
||||
/* 0x1F */ Z2_ENEMY_GE,
|
||||
/* 0x20 */ Z2_ENEMY_HZ,
|
||||
/* 0x21 */ Z2_ENEMY_WS,
|
||||
/* 0x22 */ Z2_ENEMY_OC,
|
||||
/* 0x23 */ Z2_ENEMY_FZ,
|
||||
/* 0x24 */ Z2_ENEMY_FB,
|
||||
/* 0x25 */ Z2_ENEMY_BG,
|
||||
/* 0x26 */ Z2_ENEMY_MM,
|
||||
/* 0x27 */ Z2_ENEMY_NZ,
|
||||
/* 0x28 */ Z2_ENEMY_PO,
|
||||
/* 0x29 */ Z2_ENEMY_RB,
|
||||
/* 0x2A */ Z2_ENEMY_SG,
|
||||
/* 0x2B */ Z2_ENEMY_HB,
|
||||
/* 0x2C */ Z2_ENEMY_GB,
|
||||
/* 0x2D */ Z2_ENEMY_MS,
|
||||
/* 0x2E */ Z2_ENEMY_DD,
|
||||
/* 0x2F */ Z2_ENEMY_BI,
|
||||
/* 0x30 */ Z2_ENEMY_TT,
|
||||
/* 0x31 */ Z2_ENEMY_AI,
|
||||
/* 0x32 */ Z2_ENEMY_DK,
|
||||
/* 0x33 */ Z2_ENEMY_WW,
|
||||
/* 0x34 */ Z2_ENEMY_GI,
|
||||
/* 0x35 */ Z2_ENEMY_SM2,
|
||||
/* 0x36 */ Z2_ENEMY_SW,
|
||||
/* 0x37 */ Z2_ENEMY_RDB,
|
||||
/* 0x38 */ Z2_ENEMY_KK,
|
||||
/* 0x39 */ Z2_ENEMY_HP,
|
||||
/* 0x3A */ Z2_ENEMY_ZH,
|
||||
/* 0x3B */ Z2_ENEMY_GM,
|
||||
/* 0x3C */ Z2_ENEMY_GG,
|
||||
/* 0x3D */ Z2_ENEMY_MF,
|
||||
/* 0x3E */ Z2_ENEMY_ZM,
|
||||
/* 0x3F */ Z2_ENEMY_TN,
|
||||
};
|
||||
|
||||
|
||||
class Z2SoundObjMgr : public JASGlobalInstance<Z2SoundObjMgr>, protected JSUList<Z2CreatureEnemy> {
|
||||
public:
|
||||
Z2SoundObjMgr();
|
||||
|
||||
@@ -3284,6 +3284,46 @@ public:
|
||||
u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; }
|
||||
BOOL checkClimbFall() { return checkLadderFall(); }
|
||||
|
||||
bool checkMidnaWolfDashAnime() { return checkNoResetFlg1(FLG1_DASH_MODE); }
|
||||
bool checkMidnaClingAnime() { return mMidnaAnm == 1; }
|
||||
bool checkMidnaLowClingAnime() { return mMidnaAnm == 2; }
|
||||
bool checkMidnaLookAroundAnime() { return mMidnaAnm == 3; }
|
||||
bool checkMidnaPanicAnime() { return mMidnaAnm == 5; }
|
||||
bool checkMidnaWolfDeadAnime() { return mMidnaAnm == 6; }
|
||||
bool checkMidnaWolfSwimDeadAnime() { return mMidnaAnm == 7; }
|
||||
bool checkMidnaRopeWaitStaggerAnime() { return mMidnaAnm == 8; }
|
||||
bool checkMidnaRopeMoveStaggerAnime() { return mMidnaAnm == 9; }
|
||||
bool checkMidnaGanonCatchAnm() { return mMidnaAnm == 10; }
|
||||
bool checkMidnaGanonThrowLeftAnm() { return mMidnaAnm == 11; }
|
||||
bool checkMidnaGanonThrowRightAnm() { return mMidnaAnm == 12; }
|
||||
bool checkMidnaDigInAnime() { return mMidnaAnm == 13; }
|
||||
|
||||
void clearMidnaMsgNum() {
|
||||
mMidnaMsgNum = 0xffff;
|
||||
mMidnaMsg = NULL;
|
||||
}
|
||||
|
||||
void setEndGanonThrow() { mProcVar3.field_0x300e = 1; }
|
||||
|
||||
s16 getProcNeckX() { return field_0x30a0; }
|
||||
s16 getMidnaProcNeckY() { return field_0x30d4; }
|
||||
f32 getEyeMoveRateY() { return field_0x33f4; }
|
||||
f32 getMidnaEyeMoveRateX() { return field_0x33f8; }
|
||||
|
||||
J3DModel* getMidnaModel() {
|
||||
if (mClothesChangeWaitTimer != 0) {
|
||||
return NULL;
|
||||
} else {
|
||||
return mpWlMidnaModel;
|
||||
}
|
||||
}
|
||||
|
||||
J3DModel* getMidnaMaskModel() { return mpWlMidnaMaskModel; }
|
||||
J3DModel* getMidnaHandModel() { return mpWlMidnaHandModel; }
|
||||
J3DModel* getMidnaHairHandModel() { return mpWlMidnaHairModel; }
|
||||
|
||||
cXyz* getMidnaHairAtnPos() { return &mMidnaHairAtnPos; }
|
||||
|
||||
const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; }
|
||||
const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { return &m_faceTexDataTable[i_anmID]; }
|
||||
|
||||
@@ -3428,6 +3468,9 @@ public:
|
||||
|
||||
BOOL checkCrawlWaterIn() { return mWaterY > current.pos.y + 15.5f; }
|
||||
|
||||
MtxP getWolfMidnaMatrix() { return mpLinkModel->getAnmMtx(0x19); }
|
||||
s16 getIceDamageWaitTimer() const { return mIceDamageWaitTimer; }
|
||||
const cXyz& getWindSpeed() const { return mWindSpeed; }
|
||||
const cXyz& getHsChainTopPos() const { return mHookshotTopPos; }
|
||||
const cXyz& getHsChainRootPos() const { return mHeldItemRootPos; }
|
||||
|
||||
@@ -3693,7 +3736,7 @@ public:
|
||||
/* 0x02F98 */ u8 field_0x2f98;
|
||||
/* 0x02F99 */ u8 field_0x2f99;
|
||||
/* 0x02F9A */ s8 mVoiceReverbIntensity;
|
||||
/* 0x02F9B */ u8 field_0x2f9b;
|
||||
/* 0x02F9B */ u8 mMidnaAnm;
|
||||
/* 0x02F9C */ u8 mSelectItemId;
|
||||
/* 0x02F9D */ u8 field_0x2f9d;
|
||||
/* 0x02F9E */ u8 mEffProc;
|
||||
@@ -3777,7 +3820,7 @@ public:
|
||||
/* 0x03000 */ s16 field_0x3000;
|
||||
/* 0x03002 */ s16 field_0x3002;
|
||||
/* 0x03004 */ s16 field_0x3004;
|
||||
/* 0x03006 */ s16 field_0x3006;
|
||||
/* 0x03006 */ s16 mIceDamageWaitTimer;
|
||||
// `mProcVar`'s are variables that are context dependent for each `PROC` action.
|
||||
// (The exact setup may need to be simplified later)
|
||||
union {
|
||||
@@ -3879,7 +3922,7 @@ public:
|
||||
/* 0x030CE */ u16 mKeepItem;
|
||||
/* 0x030D0 */ s16 field_0x30d0;
|
||||
/* 0x030D2 */ s16 field_0x30d2;
|
||||
/* 0x030D4 */ u16 field_0x30d4;
|
||||
/* 0x030D4 */ s16 field_0x30d4;
|
||||
/* 0x030D6 */ s16 field_0x30d6;
|
||||
/* 0x030D8 */ u8 field_0x30d8[0x14];
|
||||
/* 0x030EC */ s16 field_0x30ec;
|
||||
@@ -4059,14 +4102,14 @@ public:
|
||||
/* 0x03588 */ cXyz field_0x3588;
|
||||
/* 0x03594 */ cXyz field_0x3594;
|
||||
/* 0x035A0 */ cXyz field_0x35a0;
|
||||
/* 0x035AC */ cXyz field_0x35ac;
|
||||
/* 0x035AC */ cXyz mWindSpeed;
|
||||
/* 0x035B8 */ cXyz field_0x35b8;
|
||||
/* 0x035C4 */ cXyz field_0x35c4;
|
||||
/* 0x035D0 */ cXyz field_0x35d0;
|
||||
/* 0x035DC */ cXyz field_0x35dc;
|
||||
/* 0x035E8 */ cXyz field_0x35e8;
|
||||
/* 0x035F4 */ cXyz mMidnaAtnPos;
|
||||
/* 0x03600 */ cXyz field_0x3600;
|
||||
/* 0x03600 */ cXyz mMidnaHairAtnPos;
|
||||
/* 0x0360C */ cXyz mKandelaarFlamePos;
|
||||
/* 0x03618 */ cXyz field_0x3618;
|
||||
/* 0x03624 */ cXyz field_0x3624;
|
||||
|
||||
@@ -100,9 +100,12 @@ public:
|
||||
}
|
||||
|
||||
MtxP getLegR3Mtx() { return mLegR3Mtx; }
|
||||
MtxP getMidnaLocaterMtx() { return mpMorf->getModel()->getAnmMtx(4); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x620 - 0x568];
|
||||
/* 0x568 */ u8 field_0x568[8];
|
||||
/* 0x570 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x574 */ u8 field_0x574[0x620 - 0x574];
|
||||
/* 0x620 */ Mtx mLegR3Mtx;
|
||||
/* 0x650 */ u8 field_0x650[0x6E1 - 0x650];
|
||||
/* 0x6E1 */ u8 field_0x6e1;
|
||||
|
||||
+328
-172
@@ -2,11 +2,82 @@
|
||||
#define D_A_MIDNA_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_bg_s_lin_chk.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_msg_flow.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
|
||||
class daKago_c;
|
||||
|
||||
class daMidna_matAnm_c : public J3DMaterialAnm {
|
||||
public:
|
||||
/* 804BC218 */ void init();
|
||||
/* 804BC248 */ void calc(J3DMaterial*) const;
|
||||
/* 804C63E0 */ ~daMidna_matAnm_c() {}
|
||||
|
||||
daMidna_matAnm_c() { init(); }
|
||||
|
||||
f32* getNowOffsetXP() { return &mNowOffsetX; }
|
||||
f32* getNowOffsetYP() { return &mNowOffsetY; }
|
||||
void setNowOffsetX(f32 offsetX) { mNowOffsetX = offsetX; }
|
||||
void setNowOffsetY(f32 offsetY) { mNowOffsetY = offsetY; }
|
||||
|
||||
static bool getEyeMoveFlg() { return sEyeMoveFlg; }
|
||||
static void offEyeMoveFlg() { sEyeMoveFlg = false; }
|
||||
static void onEyeMoveFlg() { sEyeMoveFlg = true; }
|
||||
static void setMorfFrame(u8 frame) { sMorfFrame = frame; }
|
||||
static void decMorfFrame() { cLib_calcTimer(&sMorfFrame); }
|
||||
static u8 getMorfFrame() { return sMorfFrame; }
|
||||
|
||||
/* 0x0F4 */ f32 mOldTransX;
|
||||
/* 0x0F8 */ f32 mOldTransY;
|
||||
/* 0x0FC */ f32 mNowOffsetX;
|
||||
/* 0x100 */ f32 mNowOffsetY;
|
||||
|
||||
static bool sEyeMoveFlg;
|
||||
static u8 sMorfFrame;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daMidna_matAnm_c) == 0x104);
|
||||
|
||||
class daMidna_hio_c0 {
|
||||
public:
|
||||
struct param {
|
||||
/* 0x00 */ u8 field_0x00[0x14];
|
||||
/* 0x14 */ f32 mScale;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
};
|
||||
|
||||
static param const m;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daMidna_hio_c0::param) == 0x20);
|
||||
|
||||
class daMidna_McaMorfCB1_c : public mDoExt_McaMorfCallBack1_c {
|
||||
public:
|
||||
/* 804BC36C */ int execute(u16, J3DTransformInfo*);
|
||||
/* 804C6398 */ virtual ~daMidna_McaMorfCB1_c() {}
|
||||
|
||||
void setScale(cXyz* i_scale) { mpScale = i_scale; }
|
||||
|
||||
/* 0x4 */ cXyz* mpScale;
|
||||
};
|
||||
|
||||
struct daMidna_anmData_s {
|
||||
/* 0x0 */ u16 mResID;
|
||||
/* 0x2 */ u16 mTexID;
|
||||
/* 0x4 */ f32 mSoundFrame;
|
||||
/* 0x8 */ u32 mSoundID;
|
||||
};
|
||||
|
||||
struct daMidna_texData_s {
|
||||
/* 0x0 */ u16 mBtpID;
|
||||
/* 0x2 */ u16 mBtkID;
|
||||
};
|
||||
|
||||
class daMidna_c;
|
||||
typedef int (daMidna_c::*daMidna_func)();
|
||||
@@ -22,35 +93,124 @@ typedef int (daMidna_c::*daMidna_func)();
|
||||
class daMidna_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum daMidna_ERFLG0 {
|
||||
ERFLG0_UNK_100 = 0x100,
|
||||
ERFLG0_NO_SERVICE_WAIT = 0x80,
|
||||
ERFLG0_UNK_40 = 0x40,
|
||||
ERFLG0_UNK_20 = 0x20,
|
||||
ERFLG0_FORCE_MORF_CANCEL = 0x10,
|
||||
ERFLG0_FORCE_PANIC = 8,
|
||||
ERFLG0_UNK_2 = 2,
|
||||
ERFLG0_UNK_1 = 1,
|
||||
};
|
||||
|
||||
enum daMidna_FLG0 {
|
||||
FLG0_UNK_80000000 = 0x80000000,
|
||||
FLG0_NO_HAIR_LEAD = 0x80000000,
|
||||
FLG0_UNK_40000000 = 0x40000000,
|
||||
FLG0_NO_HAIR_SCALE = 0x20000000,
|
||||
FLG0_UNK_10000000 = 0x10000000,
|
||||
FLG0_PORTAL_OBJ_CALL = 0x8000000,
|
||||
FLG0_UNK_4000000 = 0x4000000,
|
||||
FLG0_UNK_2000000 = 0x2000000,
|
||||
FLG0_UNK_1000000 = 0x1000000,
|
||||
FLG0_UNK_800000 = 0x800000,
|
||||
FLG0_UNK_400000 = 0x400000,
|
||||
FLG0_UNK_200000 = 0x200000,
|
||||
FLG0_NPC_NEAR = 0x100000,
|
||||
FLG0_UNK_80000 = 0x80000,
|
||||
FLG0_NPC_FAR = 0x40000,
|
||||
FLG0_UNK_20000 = 0x20000,
|
||||
FLG0_FORCE_NECK_AIM = 0x20000,
|
||||
FLG0_UNK_10000 = 0x10000,
|
||||
FLG0_UNK_8000 = 0x8000,
|
||||
FLG0_NO_INPUT = 0x4000,
|
||||
FLG0_NO_DRAW = 0x2000,
|
||||
FLG0_UNK_400 = 0x400,
|
||||
FLG0_UNK_800 = 0x800,
|
||||
FLG0_UNK_1000 = 0x1000,
|
||||
FLG0_WOLF_NO_POS = 0x800,
|
||||
FLG0_TAG_WAIT = 0x400,
|
||||
FLG0_UNK_200 = 0x200,
|
||||
FLG0_UNK_100 = 0x100,
|
||||
FLG0_UNK_80 = 0x80,
|
||||
FLG0_UNK_40 = 0x40,
|
||||
FLG0_UNK_20 = 0x20,
|
||||
FLG0_UNK_10 = 0x10,
|
||||
FLG0_UNK_8 = 8,
|
||||
FLG0_UNK_4 = 4,
|
||||
FLG0_UNK_2 = 2,
|
||||
FLG0_UNK_1 = 1,
|
||||
};
|
||||
|
||||
enum daMidna_FLG1 {
|
||||
FLG1_SHADOW_NO_DRAW = 0x1000,
|
||||
FLG1_UNK_100 = 0x100,
|
||||
FLG1_UNK_800 = 0x800,
|
||||
FLG1_UNK_400 = 0x400,
|
||||
FLG1_UNK_200 = 0x200,
|
||||
FLG1_SIDE_WARP = 0x100,
|
||||
FLG1_NO_MASK_DRAW = 0x80,
|
||||
FLG1_UNK_40 = 0x40,
|
||||
FLG1_UNK_20 = 0x20,
|
||||
FLG1_UNK_10 = 0x10,
|
||||
FLG1_FORCE_NORMAL_COL = 8,
|
||||
FLG1_FORCE_TIRED_COL = 4,
|
||||
FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE = 2,
|
||||
FLG1_UNK_1 = 1,
|
||||
};
|
||||
|
||||
enum daMidna_ANM {};
|
||||
enum daMidna_ANM {
|
||||
/* 0x00 */ ANM_WAITA,
|
||||
/* 0x01 */ ANM_CLING,
|
||||
/* 0x02 */ ANM_CLINGB,
|
||||
/* 0x03 */ ANM_WAITB,
|
||||
/* 0x04 */ ANM_PANIC,
|
||||
/* 0x05 */ ANM_TALKA,
|
||||
/* 0x06 */ ANM_LEADST,
|
||||
/* 0x07 */ ANM_LEADED,
|
||||
/* 0x08 */ ANM_LEADWAIT,
|
||||
/* 0x09 */ ANM_LEADTOWAITA,
|
||||
/* 0x0A */ ANM_LEADSWAIT,
|
||||
/* 0x0B */ ANM_CLINGST,
|
||||
/* 0x0C */ ANM_SWAITB,
|
||||
/* 0x0D */ ANM_SWAITC,
|
||||
/* 0x0E */ ANM_WLDIEA,
|
||||
/* 0x0F */ ANM_WLSWIMDIE,
|
||||
/* 0x10 */ ANM_S_APPEAR,
|
||||
/* 0x11 */ ANM_S_APPEARBL,
|
||||
/* 0x12 */ ANM_S_RETURN,
|
||||
/* 0x13 */ ANM_S_HOLE,
|
||||
/* 0x14 */ ANM_WARPIN,
|
||||
/* 0x15 */ ANM_WAITTP,
|
||||
/* 0x16 */ ANM_ENTRANCE,
|
||||
/* 0x17 */ ANM_SWAITD,
|
||||
/* 0x18 */ ANM_HIT,
|
||||
/* 0x19 */ ANM_LOOKABOUT,
|
||||
/* 0x1A */ ANM_SWAITA,
|
||||
/* 0x1B */ ANM_S_MOVE,
|
||||
/* 0x1C */ ANM_RETURN,
|
||||
/* 0x1D */ ANM_WAITD,
|
||||
/* 0x1E */ ANM_CLINGD,
|
||||
/* 0x1F */ ANM_ROPEWAIT,
|
||||
/* 0x20 */ ANM_ROPEFALTER,
|
||||
/* 0x21 */ ANM_DIGIN,
|
||||
/* 0x22 */ ANM_DOOROPC,
|
||||
/* 0x23 */ ANM_DOOROPD,
|
||||
/* 0x24 */ ANM_GRAB,
|
||||
/* 0x25 */ ANM_GRABED,
|
||||
/* 0x26 */ ANM_MGNCATCHST,
|
||||
/* 0x27 */ ANM_MGNCATCHED,
|
||||
/* 0x28 */ ANM_MGNTHROWLST,
|
||||
/* 0x29 */ ANM_MGNTHROWLED,
|
||||
/* 0x2A */ ANM_MGNTHROWRST,
|
||||
/* 0x2B */ ANM_MGNTHROWRED,
|
||||
/* 0x2C */ ANM_FTALKA,
|
||||
/* 0x2D */ ANM_FTALKB,
|
||||
/* 0x2E */ ANM_FTALKC,
|
||||
/* 0x2F */ ANM_FTALKC2,
|
||||
/* 0x30 */ ANM_HAIR,
|
||||
/* 0x31 */ ANM_S_TAKES,
|
||||
/* 0x32 */ ANM_S_WAITS,
|
||||
/* 0x33 */ ANM_S_PACKAWAY,
|
||||
/* 0x34 */ ANM_GRABST,
|
||||
/* 0x35 */ ANM_MAX,
|
||||
/* 0x00 */ ANM_NONE = 0,
|
||||
};
|
||||
|
||||
void onForcePanic();
|
||||
u32 checkForceNormalColor() const;
|
||||
@@ -58,57 +218,60 @@ public:
|
||||
static bool checkMidnaTired();
|
||||
void onNoServiceWait();
|
||||
|
||||
/* 804BC3E0 */ void modelCallBack(int);
|
||||
/* 804BC5C4 */ void changeUpperBck();
|
||||
/* 804BC614 */ void changeFaceBck();
|
||||
/* 804BC670 */ void baseModelCallBack(int);
|
||||
/* 804BC740 */ void initInvModel(u16, J3DModel**, mDoExt_invisibleModel*, u32);
|
||||
/* 804BC7D4 */ void initDemoModel(J3DModel**, char const*, u32);
|
||||
/* 804BC868 */ void createHeap();
|
||||
/* 804BD274 */ void create();
|
||||
/* 804BC3E0 */ int modelCallBack(int);
|
||||
/* 804BC5C4 */ int changeUpperBck();
|
||||
/* 804BC614 */ int changeFaceBck();
|
||||
/* 804BC670 */ int baseModelCallBack(int);
|
||||
/* 804BC740 */ int initInvModel(u16, J3DModel**, mDoExt_invisibleModel*, u32);
|
||||
/* 804BC7D4 */ int initDemoModel(J3DModel**, char const*, u32);
|
||||
/* 804BC868 */ int createHeap();
|
||||
/* 804BD274 */ cPhs__Step create();
|
||||
/* 804BD93C */ void allAnimePlay();
|
||||
/* 804BDE04 */ void setMatrix();
|
||||
/* 804BE470 */ void setBodyPartMatrix();
|
||||
/* 804BED1C */ void setRoomInfo();
|
||||
/* 804BEDB8 */ void setBodyPartPos();
|
||||
/* 804BEFA0 */ void checkAppear();
|
||||
/* 804BEFA0 */ BOOL checkAppear();
|
||||
/* 804BF070 */ void checkMidnaPosState();
|
||||
/* 804BFF80 */ void setUpperAnime(u16, u16);
|
||||
/* 804C0020 */ void setUpperAnimeAndSe(daMidna_c::daMidna_ANM);
|
||||
/* 804C0094 */ void setFaceAnime(u16, u16);
|
||||
/* 804BFF80 */ BOOL setUpperAnime(u16, u16);
|
||||
/* 804C0020 */ BOOL setUpperAnimeAndSe(daMidna_ANM);
|
||||
/* 804C0094 */ BOOL setFaceAnime(u16, u16);
|
||||
/* 804C0134 */ void endHighModel();
|
||||
/* 804C0238 */ void setDemoAnm();
|
||||
/* 804C0238 */ BOOL setDemoAnm();
|
||||
/* 804C0BAC */ void setFaceBtp(u16, int);
|
||||
/* 804C0C6C */ void setFaceBtk(u16, int);
|
||||
/* 804C0D2C */ void setLeftHandShape(u16);
|
||||
/* 804C0E18 */ void setRightHandShape(u16);
|
||||
/* 804C0F04 */ void checkHairOnlyAnime(int) const;
|
||||
/* 804C0F04 */ BOOL checkHairOnlyAnime(int) const;
|
||||
/* 804C0F24 */ void setBckAnime(J3DAnmTransform*, int, f32);
|
||||
/* 804C103C */ void setAnm();
|
||||
/* 804C287C */ void getNeckAimAngle(cXyz const*, s16*, s16*, s16*, s16*);
|
||||
/* 804C287C */ s16 getNeckAimAngle(cXyz const*, s16*, s16*, s16*, s16*);
|
||||
/* 804C2A68 */ void clearEyeMove();
|
||||
/* 804C2AB8 */ void setEyeMove(cXyz const*, s16, s16);
|
||||
/* 804C2EBC */ void setNeckAngle();
|
||||
/* 804C3168 */ void initHairAngle();
|
||||
/* 804C3298 */ void setHairAngle();
|
||||
/* 804C3F04 */ void setDemoData();
|
||||
/* 804C4394 */ void setSimpleBrk(J3DModelData*, u16);
|
||||
/* 804C4444 */ void setSimpleBtk(J3DModelData*, u16);
|
||||
/* 804C4394 */ J3DAnmTevRegKey* setSimpleBrk(J3DModelData*, u16);
|
||||
/* 804C4444 */ J3DAnmTextureSRTKey* setSimpleBtk(J3DModelData*, u16);
|
||||
/* 804C44CC */ void initMidnaModel();
|
||||
/* 804C49B8 */ void setMidnaNoDrawFlg();
|
||||
/* 804C4AE8 */ void checkMetamorphoseEnableBase();
|
||||
/* 804C4B68 */ void checkNoDrawState();
|
||||
/* 804C4AE8 */ int checkMetamorphoseEnableBase();
|
||||
/* 804C4B68 */ BOOL checkNoDrawState();
|
||||
/* 804C4BC0 */ void setSound();
|
||||
/* 804C4FDC */ void execute();
|
||||
/* 804C5A08 */ void draw();
|
||||
/* 804C4FDC */ int execute();
|
||||
/* 804C5A08 */ int draw();
|
||||
/* 804C61A4 */ ~daMidna_c();
|
||||
|
||||
daMidna_c() : mBtpHeap(0x400), mBtkHeap(0x400) {}
|
||||
|
||||
void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; }
|
||||
void onStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 |= i_flag; }
|
||||
void offStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 &= ~i_flag; }
|
||||
void onStateFlg1(daMidna_FLG1 i_flag) { mStateFlg1 |= i_flag; }
|
||||
void offStateFlg1(daMidna_FLG1 i_flag) { mStateFlg1 &= ~i_flag; }
|
||||
BOOL checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
u32 checkEndResetStateFlg0(daMidna_ERFLG0 flag) const { return mEndResetStateFlg0 & flag; }
|
||||
u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; }
|
||||
void setFaceNum(int num) { mFaceNum = num; }
|
||||
void setMotionNum(int num) { mMotionNum = num; }
|
||||
@@ -116,48 +279,46 @@ public:
|
||||
void changeOriginalDemo() { mDemoType = 3; }
|
||||
void changeDemoMode(u32 mode) { mDemoMode = mode; }
|
||||
BOOL checkPortalObjCall() { return checkStateFlg0(FLG0_PORTAL_OBJ_CALL); }
|
||||
BOOL checkNoHairScale() const { return checkStateFlg0(FLG0_NO_HAIR_SCALE); }
|
||||
BOOL checkNpcNear() { return checkStateFlg0(FLG0_NPC_NEAR); }
|
||||
BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); }
|
||||
BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); }
|
||||
BOOL checkNoInput() const { return checkStateFlg0(FLG0_NO_INPUT); }
|
||||
BOOL checkWolfNoPos() const { return checkStateFlg0(FLG0_UNK_800); }
|
||||
BOOL checkWolfNoPos() const { return checkStateFlg0(FLG0_WOLF_NO_POS); }
|
||||
int checkMetamorphoseEnable() { return (this->*mpFunc)(); }
|
||||
u32 checkShadowModelDrawDemoForce() const { return checkStateFlg1(FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE); }
|
||||
|
||||
void setForceNeckAimPos(const cXyz& i_pos) {
|
||||
onStateFlg0(FLG0_UNK_20000);
|
||||
field_0x9c4 = i_pos;
|
||||
onStateFlg0(FLG0_FORCE_NECK_AIM);
|
||||
mForceNeckAimPos = i_pos;
|
||||
}
|
||||
|
||||
void onTagWaitPosWarp(const cXyz* param_0) {
|
||||
field_0x9ac = *param_0;
|
||||
onStateFlg0(FLG0_UNK_400);
|
||||
mTagWaitPos = *param_0;
|
||||
onStateFlg0(FLG0_TAG_WAIT);
|
||||
onEndResetStateFlg0(ERFLG0_UNK_2);
|
||||
}
|
||||
|
||||
void onTagWaitPos(const cXyz* param_0) {
|
||||
field_0x9ac = *param_0;
|
||||
onStateFlg0(FLG0_UNK_400);
|
||||
mTagWaitPos = *param_0;
|
||||
onStateFlg0(FLG0_TAG_WAIT);
|
||||
}
|
||||
|
||||
void offTagWaitPos() {
|
||||
offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_PORTAL_OBJ_CALL | FLG0_UNK_400));
|
||||
offStateFlg0((daMidna_FLG0)(FLG0_NO_HAIR_LEAD | FLG0_PORTAL_OBJ_CALL | FLG0_TAG_WAIT));
|
||||
}
|
||||
|
||||
void onTagNoHairLead() {
|
||||
onStateFlg0(FLG0_UNK_80000000);
|
||||
}
|
||||
void onTagNoHairLead() { onStateFlg0(FLG0_NO_HAIR_LEAD); }
|
||||
void onSideWarp() { onStateFlg1(FLG1_SIDE_WARP); }
|
||||
|
||||
void onSideWarp() {
|
||||
onStateFlg1(FLG1_UNK_100);
|
||||
}
|
||||
MtxP getMtxHairTop() { return mpShadowModel->getAnmMtx(10); }
|
||||
|
||||
MtxP getMtxHairTop() {
|
||||
return field_0x574->getAnmMtx(10);
|
||||
bool checkSetAnime(int param_0, daMidna_ANM i_anm) {
|
||||
return mBckHeap[param_0].getIdx() == m_anmDataTable[i_anm].mResID;
|
||||
}
|
||||
|
||||
bool checkReturnAnime() const {
|
||||
return field_0x5e4[0].getIdx() == 0x1CA;
|
||||
return mBckHeap[0].getIdx() == 0x1CA;
|
||||
}
|
||||
|
||||
bool checkShadowModelDrawSmode() const {
|
||||
@@ -169,7 +330,7 @@ public:
|
||||
}
|
||||
|
||||
bool checkShadowReturnEnd() const {
|
||||
return field_0x5e4[0].getIdx() == 0x21C && field_0x578->isStop();
|
||||
return mBckHeap[0].getIdx() == 0x21C && mpMorf->isStop();
|
||||
}
|
||||
|
||||
bool checkShadowModeTalkWait() const {
|
||||
@@ -178,7 +339,6 @@ public:
|
||||
|
||||
void setShadowReturn() { field_0x84e = 4; }
|
||||
|
||||
|
||||
bool checkPortalObjRide() const {
|
||||
return checkStateFlg0(FLG0_PORTAL_OBJ_CALL) && checkStateFlg0(FLG0_UNK_200);
|
||||
}
|
||||
@@ -193,10 +353,8 @@ public:
|
||||
|
||||
BOOL checkDemoPortalWarpWait() const { return mDemoMode == 11; }
|
||||
|
||||
inline static BOOL checkMidnaRealBody();
|
||||
|
||||
inline static BOOL i_checkMidnaRealBody() {
|
||||
return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3);
|
||||
static BOOL checkMidnaRealBody() {
|
||||
return dKy_darkworld_check() == true || dComIfGs_isTransformLV(3);
|
||||
}
|
||||
|
||||
static bool i_checkMidnaTired() {
|
||||
@@ -206,132 +364,130 @@ public:
|
||||
void resetRatBody() {}
|
||||
|
||||
bool checkFlyWaitAnime() {
|
||||
return field_0x5e4[0].getIdx() == 0x1CB || field_0x5e4[0].getIdx() == 0x1C7
|
||||
|| field_0x5e4[0].getIdx() == 0x1C8 || field_0x5e4[0].getIdx() == 0x1C9;
|
||||
return mBckHeap[0].getIdx() == 0x1CB || mBckHeap[0].getIdx() == 0x1C7
|
||||
|| mBckHeap[0].getIdx() == 0x1C8 || mBckHeap[0].getIdx() == 0x1C9;
|
||||
}
|
||||
|
||||
void onForceMorfCancel() { onEndResetStateFlg0(ERFLG0_FORCE_MORF_CANCEL); }
|
||||
|
||||
static u8 const m_texDataTable[84];
|
||||
static u8 const m_anmDataTable[636];
|
||||
static daMidna_texData_s const m_texDataTable[21];
|
||||
static daMidna_anmData_s const m_anmDataTable[53];
|
||||
|
||||
private:
|
||||
/* 0x0568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x0570 */ J3DModel* field_0x570;
|
||||
/* 0x0574 */ J3DModel* field_0x574;
|
||||
/* 0x0578 */ mDoExt_McaMorfSO* field_0x578;
|
||||
/* 0x057C */ mDoExt_McaMorfCallBack1_c* field_0x57c; // this is really daMidna_McaMorfCB1_c. fix later
|
||||
/* 0x0580 */ cXyz* field_0x580;
|
||||
/* 0x0584 */ mDoExt_bckAnm field_0x584;
|
||||
/* 0x05A0 */ mDoExt_bckAnm field_0x5a0;
|
||||
/* 0x05BC */ J3DAnmTexPattern* field_0x5bc;
|
||||
/* 0x05C0 */ J3DAnmTextureSRTKey* field_0x5c0;
|
||||
/* 0x05C4 */ mDoExt_invisibleModel field_0x5c4;
|
||||
/* 0x05CC */ mDoExt_invisibleModel mInvMaskBmd;
|
||||
/* 0x05D4 */ mDoExt_invisibleModel mInvHandsBmd;
|
||||
/* 0x05DC */ mDoExt_invisibleModel mInvHairhandBmd;
|
||||
/* 0x05E4 */ daPy_anmHeap_c field_0x5e4[3];
|
||||
/* 0x0620 */ daPy_anmHeap_c field_0x620;
|
||||
/* 0x0634 */ daPy_anmHeap_c field_0x634;
|
||||
/* 0x0648 */ J3DAnmTextureSRTKey* field_0x648;
|
||||
/* 0x064C */ J3DAnmTextureSRTKey* field_0x64c;
|
||||
/* 0x0650 */ J3DAnmTextureSRTKey* field_0x650;
|
||||
/* 0x0654 */ J3DAnmTextureSRTKey* field_0x654;
|
||||
/* 0x0658 */ J3DAnmTevRegKey* field_0x658;
|
||||
/* 0x065C */ J3DAnmTevRegKey* field_0x65c;
|
||||
/* 0x0660 */ J3DAnmTevRegKey* field_0x660;
|
||||
/* 0x0664 */ J3DAnmTevRegKey* field_0x664;
|
||||
/* 0x0668 */ J3DAnmTevRegKey* field_0x668;
|
||||
/* 0x066C */ J3DAnmTevRegKey* field_0x66c;
|
||||
/* 0x0670 */ J3DModel* field_0x670;
|
||||
/* 0x0674 */ J3DModel* mpMaskBmd;
|
||||
/* 0x0678 */ J3DModel* field_0x678;
|
||||
/* 0x067C */ J3DModel* mpHandsBmd;
|
||||
/* 0x0680 */ J3DModel* field_0x680;
|
||||
/* 0x0684 */ J3DModel* mpHairhandBmd;
|
||||
/* 0x0688 */ J3DModel* mpDemoBDTmpBmd;
|
||||
/* 0x068C */ J3DModel* mpDemoBDMaskBmd;
|
||||
/* 0x0690 */ J3DModel* mpDemoBDHandsBmd;
|
||||
/* 0x0694 */ J3DModel* mpDemoBDHairhandBmd;
|
||||
/* 0x0698 */ J3DModel* mpGokouBmd;
|
||||
/* 0x069C */ J3DShape* field_0x69c;
|
||||
/* 0x06A0 */ J3DShape* field_0x6a0;
|
||||
/* 0x06A4 */ J3DShape* field_0x6a4;
|
||||
/* 0x06A8 */ J3DShape* field_0x6a8;
|
||||
/* 0x06AC */ J3DModel* mpDemoFCBlendBmd;
|
||||
/* 0x06B0 */ J3DModel* mpDemoFCTongueBmd;
|
||||
/* 0x06B4 */ J3DAnmTextureSRTKey* field_0x6b4;
|
||||
/* 0x06B8 */ mDoExt_bckAnm* mpDemoFCTmpBck;
|
||||
/* 0x06BC */ J3DDeformData* mpDemoFCTmpBls;
|
||||
/* 0x06C0 */ J3DAnmCluster* field_0x6c0;
|
||||
/* 0x06C4 */ mDoExt_blkAnm* field_0x6c4;
|
||||
/* 0x06C8 */ J3DModel* mpDemoHLTmpBmd;
|
||||
/* 0x06CC */ mDoExt_bckAnm* mpDemoHLTmpBck;
|
||||
/* 0x06D0 */ J3DModel* mpDemoHRTmpBmd;
|
||||
/* 0x06D4 */ mDoExt_bckAnm* mpDemoHRTmpBck;
|
||||
/* 0x06D8 */ J3DModel* mpDemoHDTmpBmd;
|
||||
/* 0x06DC */ mDoExt_bckAnm* mpDemoHDTmpBck;
|
||||
/* 0x06E0 */ J3DGXColorS10 field_0x6e0;
|
||||
/* 0x06E8 */ J3DGXColor field_0x6e8;
|
||||
/* 0x06EC */ u8 field_0x6ec; // this is probably J3DGXColor. fix later
|
||||
/* 0x06ED */ u8 field_0x6ed;
|
||||
/* 0x06EE */ u8 field_0x6ee;
|
||||
/* 0x06EF */ u8 field_0x6ef;
|
||||
/* 0x06F0 */ void* field_0x6f0;
|
||||
/* 0x06F4 */ void* field_0x6f4;
|
||||
/* 0x06F8 */ void* field_0x6f8;
|
||||
/* 0x06FC */ Z2Creature field_0x6fc;
|
||||
/* 0x078C */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x07D8 */ dBgS_LinkLinChk mLinChk;
|
||||
/* 0x0848 */ u8 mMotionNum;
|
||||
/* 0x0849 */ u8 mFaceNum;
|
||||
/* 0x084A */ u8 field_0x84a[4];
|
||||
/* 0x084E */ u8 field_0x84e;
|
||||
/* 0x084F */ u8 mDemoType;
|
||||
/* 0x0850 */ u8 field_0x850[0xA];
|
||||
/* 0x085A */ s16 field_0x85a;
|
||||
/* 0x085C */ u8 field_0x85c[0x22];
|
||||
/* 0x087E */ s16 field_0x87e;
|
||||
/* 0x0880 */ u8 field_0x880[0xC]; // csXyz in here, fix later
|
||||
/* 0x088C */ int mStaffID;
|
||||
/* 0x0890 */ u32 mStateFlg0;
|
||||
/* 0x0894 */ u32 mStateFlg1;
|
||||
/* 0x0898 */ u32 mEndResetStateFlg0;
|
||||
/* 0x089C */ u8 field_0x89c[0x24];
|
||||
/* 0x08C0 */ u32 mDemoMode;
|
||||
/* 0x08C4 */ u8 field_0x8c4[4];
|
||||
/* 0x08C8 */ f32 field_0x8c8;
|
||||
/* 0x08CC */ u8 field_0x8cc[0x14];
|
||||
/* 0x08E0 */ cXyz field_0x8e0[5];
|
||||
/* 0x091C */ cXyz field_0x91c[5];
|
||||
/* 0x0958 */ u8 field_0x958[0xC]; // cXyz here, fix later
|
||||
/* 0x0964 */ cXyz field_0x964[5];
|
||||
/* 0x09A0 */ u8 field_0x9a0[0xC];
|
||||
/* 0x09AC */ cXyz field_0x9ac;
|
||||
/* 0x09B8 */ u8 field_0x9b8[0x9C4 - 0x9B8];
|
||||
/* 0x09C4 */ cXyz field_0x9c4;
|
||||
/* 0x09D0 */ u8 field_0x9d0[4];
|
||||
/* 0x09D4 */ daMidna_func mpFunc;
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x570 */ J3DModel* mpModel;
|
||||
/* 0x574 */ J3DModel* mpShadowModel;
|
||||
/* 0x578 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x57C */ daMidna_McaMorfCB1_c mMorfCB;
|
||||
/* 0x584 */ mDoExt_bckAnm mUpperBck;
|
||||
/* 0x5A0 */ mDoExt_bckAnm mFaceBck;
|
||||
/* 0x5BC */ J3DAnmTexPattern* mpFaceBtp;
|
||||
/* 0x5C0 */ J3DAnmTextureSRTKey* mpFaceBtk;
|
||||
/* 0x5C4 */ mDoExt_invisibleModel mInvModel;
|
||||
/* 0x5CC */ mDoExt_invisibleModel mMaskInvModel;
|
||||
/* 0x5D4 */ mDoExt_invisibleModel mHandsInvModel;
|
||||
/* 0x5DC */ mDoExt_invisibleModel mHairhandInvModel;
|
||||
/* 0x5E4 */ daPy_anmHeap_c mBckHeap[3];
|
||||
/* 0x620 */ daPy_anmHeap_c mBtpHeap;
|
||||
/* 0x634 */ daPy_anmHeap_c mBtkHeap;
|
||||
/* 0x648 */ J3DAnmTextureSRTKey* mpMoyaBtk;
|
||||
/* 0x64C */ J3DAnmTextureSRTKey* mpMaskMoyaBtk;
|
||||
/* 0x650 */ J3DAnmTextureSRTKey* mpHandsMoyaBtk;
|
||||
/* 0x654 */ J3DAnmTextureSRTKey* mpHairhandMoyaBtk;
|
||||
/* 0x658 */ J3DAnmTevRegKey* mpAppearBrk;
|
||||
/* 0x65C */ J3DAnmTevRegKey* mpMaskAppearBrk;
|
||||
/* 0x660 */ J3DAnmTevRegKey* mpHairhandAppearBrk;
|
||||
/* 0x664 */ J3DAnmTevRegKey* mpGokouAppearBrk;
|
||||
/* 0x668 */ J3DAnmTevRegKey* field_0x668;
|
||||
/* 0x66C */ J3DAnmTevRegKey* mpDemoFCBlendBrk;
|
||||
/* 0x670 */ J3DModel* mpMaskBmd;
|
||||
/* 0x674 */ J3DModel* mpShadowMaskBmd;
|
||||
/* 0x678 */ J3DModel* mpHandsBmd;
|
||||
/* 0x67C */ J3DModel* mpShadowHandsBmd;
|
||||
/* 0x680 */ J3DModel* mpHairhandBmd;
|
||||
/* 0x684 */ J3DModel* mpShadowHairhandBmd;
|
||||
/* 0x688 */ J3DModel* mpDemoBDTmpBmd;
|
||||
/* 0x68C */ J3DModel* mpDemoBDMaskBmd;
|
||||
/* 0x690 */ J3DModel* mpDemoBDHandsBmd;
|
||||
/* 0x694 */ J3DModel* mpDemoBDHairhandBmd;
|
||||
/* 0x698 */ J3DModel* mpGokouBmd;
|
||||
/* 0x69C */ J3DShape* mpLeftHandShape;
|
||||
/* 0x6A0 */ J3DShape* mpRightHandShape;
|
||||
/* 0x6A4 */ J3DShape* mpShadowLeftHandShape;
|
||||
/* 0x6A8 */ J3DShape* mpShadowRightHandShape;
|
||||
/* 0x6AC */ J3DModel* mpDemoFCBlendBmd;
|
||||
/* 0x6B0 */ J3DModel* mpDemoFCTongueBmd;
|
||||
/* 0x6B4 */ J3DAnmTextureSRTKey* mpDemoFCTongueBtk;
|
||||
/* 0x6B8 */ mDoExt_bckAnm* mpDemoFCTmpBck;
|
||||
/* 0x6BC */ J3DDeformData* mpDemoFCTmpBls;
|
||||
/* 0x6C0 */ J3DAnmCluster* mpDemoFCTmpCluster;
|
||||
/* 0x6C4 */ mDoExt_blkAnm* mpDemoFCTmpBlk;
|
||||
/* 0x6C8 */ J3DModel* mpDemoHLTmpBmd;
|
||||
/* 0x6CC */ mDoExt_bckAnm* mpDemoHLTmpBck;
|
||||
/* 0x6D0 */ J3DModel* mpDemoHRTmpBmd;
|
||||
/* 0x6D4 */ mDoExt_bckAnm* mpDemoHRTmpBck;
|
||||
/* 0x6D8 */ J3DModel* mpDemoHDTmpBmd;
|
||||
/* 0x6DC */ mDoExt_bckAnm* mpDemoHDTmpBck;
|
||||
/* 0x6E0 */ J3DGXColorS10 field_0x6e0;
|
||||
/* 0x6E8 */ J3DGXColor field_0x6e8;
|
||||
/* 0x6EC */ J3DGXColor field_0x6ec;
|
||||
/* 0x6F0 */ daMidna_matAnm_c* mpEyeMatAnm[2];
|
||||
/* 0x6F8 */ daMidna_hio_c0* mpHIO;
|
||||
/* 0x6FC */ Z2Creature mSound;
|
||||
/* 0x78C */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x7D8 */ dBgS_LinkLinChk mLinChk;
|
||||
/* 0x848 */ u8 mMotionNum;
|
||||
/* 0x849 */ u8 mFaceNum;
|
||||
/* 0x84A */ u8 field_0x84a;
|
||||
/* 0x84B */ u8 mFaceBckTimer;
|
||||
/* 0x84C */ u8 mEyeMoveTimer;
|
||||
/* 0x84D */ s8 mReverb;
|
||||
/* 0x84E */ u8 field_0x84e;
|
||||
/* 0x84F */ u8 mDemoType;
|
||||
/* 0x850 */ u8 field_0x850;
|
||||
/* 0x851 */ u8 field_0x851;
|
||||
/* 0x852 */ u8 field_0x852[8];
|
||||
/* 0x85A */ s16 field_0x85a;
|
||||
/* 0x85C */ s16 mHairAngleZ[5];
|
||||
/* 0x866 */ s16 mHairAngleY[5];
|
||||
/* 0x870 */ u8 field_0x870[2];
|
||||
/* 0x872 */ s16 field_0x872;
|
||||
/* 0x874 */ s16 mBackboneAngleZ;
|
||||
/* 0x876 */ s16 field_0x876;
|
||||
/* 0x878 */ u16 mLeftHandShapeIdx;
|
||||
/* 0x87A */ u16 mRightHandShapeIdx;
|
||||
/* 0x87C */ s16 mDemoAngle;
|
||||
/* 0x87E */ s16 field_0x87e;
|
||||
/* 0x880 */ csXyz mNeckAngle;
|
||||
/* 0x886 */ u8 field_0x886[6];
|
||||
/* 0x88C */ int mStaffID;
|
||||
/* 0x890 */ u32 mStateFlg0;
|
||||
/* 0x894 */ u32 mStateFlg1;
|
||||
/* 0x898 */ u32 mEndResetStateFlg0;
|
||||
/* 0x89C */ u32 mShadowKey;
|
||||
/* 0x8A0 */ u32 mParticleKey1;
|
||||
/* 0x8A4 */ u32 mParticleKey2;
|
||||
/* 0x8A8 */ u32 mThroughEffectKey[6];
|
||||
/* 0x8C0 */ u32 mDemoMode;
|
||||
/* 0x8C4 */ u32 mSoundID;
|
||||
/* 0x8C8 */ f32 mVoiceFrame;
|
||||
/* 0x8CC */ f32 mEyeMoveX;
|
||||
/* 0x8D0 */ f32 mEyeMoveY;
|
||||
/* 0x8D4 */ f32 field_0x8d4;
|
||||
/* 0x8D8 */ f32 mDemoSpeed;
|
||||
/* 0x8DC */ f32 field_0x8dc;
|
||||
/* 0x8E0 */ cXyz mHairPos[5];
|
||||
/* 0x91C */ cXyz mHairDir[5];
|
||||
/* 0x958 */ cXyz mHeadCenterPos;
|
||||
/* 0x964 */ cXyz mHairScale[5];
|
||||
/* 0x9A0 */ cXyz field_0x9a0;
|
||||
/* 0x9AC */ cXyz mTagWaitPos;
|
||||
/* 0x9B8 */ cXyz mDemoPos;
|
||||
/* 0x9C4 */ cXyz mForceNeckAimPos;
|
||||
/* 0x9D0 */ daKago_c* mpKago;
|
||||
/* 0x9D4 */ daMidna_func mpFunc;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daMidna_c) == 0x9e0);
|
||||
|
||||
class daMidna_matAnm_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 804BC218 */ void init();
|
||||
/* 804BC248 */ void calc(J3DMaterial*) const;
|
||||
/* 804C63E0 */ ~daMidna_matAnm_c();
|
||||
};
|
||||
|
||||
class daMidna_hio_c0 {
|
||||
public:
|
||||
static u8 const m[32];
|
||||
};
|
||||
|
||||
class daMidna_McaMorfCB1_c {
|
||||
public:
|
||||
/* 804BC36C */ void execute(u16, J3DTransformInfo*);
|
||||
/* 804C6398 */ ~daMidna_McaMorfCB1_c();
|
||||
};
|
||||
STATIC_ASSERT(sizeof(daMidna_c) == 0x9E0);
|
||||
|
||||
#endif /* D_A_MIDNA_H */
|
||||
|
||||
@@ -57,8 +57,6 @@ public:
|
||||
HEAP_TYPE_5,
|
||||
};
|
||||
|
||||
/* 80140DCC */ void __defctor(); // compiler generated due to ctor with default param
|
||||
|
||||
daPy_anmHeap_c(u32 param_0 = 0);
|
||||
~daPy_anmHeap_c();
|
||||
void initData();
|
||||
@@ -77,6 +75,7 @@ public:
|
||||
bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; }
|
||||
void setBufferSize(u32 size) { mBufferSize = size; }
|
||||
void setBuffer(u8* buf) { mBuffer = buf; }
|
||||
u32 getBufferSize() { return mBufferSize; }
|
||||
u8* getBuffer() { return mBuffer; }
|
||||
bool checkNoSetIdx() const { return mIdx == 0xFFFF; }
|
||||
bool checkNoSetPriIdx() const { return mPriIdx == 0xFFFF; }
|
||||
@@ -263,6 +262,7 @@ public:
|
||||
FLG1_DASH_MODE = 0x400000,
|
||||
FLG1_UNK_200000 = 0x200000,
|
||||
FLG1_UNK_100000 = 0x100000,
|
||||
FLG1_MIDNA_ATN_POS = 0x80000,
|
||||
FLG1_UNK_40000 = 0x40000,
|
||||
FLG1_UNK_10000 = 0x10000,
|
||||
FLG1_UNK_8000 = 0x8000,
|
||||
@@ -271,6 +271,7 @@ public:
|
||||
FLG1_UNK_1000 = 0x1000,
|
||||
FLG1_UNK_800 = 0x800,
|
||||
FLG1_UNK_200 = 0x200,
|
||||
FLG1_MIDNA_HAIR_ATN_POS = 0x100,
|
||||
FLG1_UNK_80 = 0x80,
|
||||
FLG1_UNK_40 = 0x40,
|
||||
FLG1_UNK_20 = 0x20,
|
||||
@@ -338,7 +339,7 @@ public:
|
||||
FLG3_UNK_100000 = 0x100000,
|
||||
FLG3_UNK_80000 = 0x80000,
|
||||
FLG3_COPY_ROD_THROW_AFTER = 0x40000,
|
||||
FLG3_UNK_10000 = 0x10000,
|
||||
FLG3_MIDNA_TALK_POLY_SPEED = 0x10000,
|
||||
FLG3_UNK_8000 = 0x8000,
|
||||
FLG3_UNK_4000 = 0x4000,
|
||||
FLG3_UNK_2000 = 0x2000,
|
||||
@@ -413,7 +414,7 @@ public:
|
||||
ERFLG1_WOLF_EYE_KEEP = 0x200,
|
||||
ERFLG1_UNK_100 = 0x100,
|
||||
ERFLG1_UNK_80 = 0x80,
|
||||
ERFLG1_UNK_40 = 0x40,
|
||||
ERFLG1_MIDNA_RIDE_SHOCK = 0x40,
|
||||
ERFLG1_UNK_20 = 0x20,
|
||||
ERFLG1_UNK_10 = 0x10,
|
||||
ERFLG1_UNK_8 = 8,
|
||||
@@ -424,6 +425,7 @@ public:
|
||||
|
||||
enum daPy_ERFLG2 {
|
||||
ERFLG2_UNK_100 = 0x100,
|
||||
ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP = 0x80,
|
||||
ERFLG2_UNK_40 = 0x40,
|
||||
ERFLG2_UNK_20 = 0x20,
|
||||
ERFLG2_UNK_10 = 0x10,
|
||||
@@ -806,6 +808,8 @@ public:
|
||||
BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); }
|
||||
BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_UNK_40); }
|
||||
bool checkGrabThrow() const { return checkResetFlg0(RFLG0_GRAB_THROW); }
|
||||
bool checkMidnaAtnPos() const { return checkNoResetFlg1(FLG1_MIDNA_ATN_POS); }
|
||||
bool checkMidnaHairAtnPos() const { return checkNoResetFlg1(FLG1_MIDNA_HAIR_ATN_POS); }
|
||||
|
||||
void onBossRoomWait() { onEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT); }
|
||||
void onBeeFollow() { onEndResetFlg0(ERFLG0_BEE_FOLLOW); }
|
||||
@@ -814,6 +818,7 @@ public:
|
||||
void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); }
|
||||
void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); }
|
||||
void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); }
|
||||
void onPortalWarpMidnaAtnKeep() { onEndResetFlg2(ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP); }
|
||||
void onFogFade() { onNoResetFlg2(FLG2_UNK_4000); }
|
||||
BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); }
|
||||
u32 getCutAtFlg() const { return checkNoResetFlg0(FLG0_UNK_40); }
|
||||
@@ -829,6 +834,7 @@ public:
|
||||
mSpecialMode = 0;
|
||||
}
|
||||
}
|
||||
void onMidnaTalkPolySpeed() { onNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED); }
|
||||
|
||||
void offCargoCarry() {
|
||||
if (checkCargoCarry()) {
|
||||
@@ -903,6 +909,9 @@ public:
|
||||
void offPlayerNoDraw() { offNoResetFlg0(FLG0_PLAYER_NO_DRAW); }
|
||||
void onPushPullKeep() { onNoResetFlg0(FLG0_PUSH_PULL_KEEP); }
|
||||
void offPushPullKeep() { offNoResetFlg0(FLG0_PUSH_PULL_KEEP); }
|
||||
void onMidnaRide() { onNoResetFlg0(FLG0_MIDNA_RIDE); }
|
||||
void offMidnaRide() { offNoResetFlg0(FLG0_MIDNA_RIDE); }
|
||||
void onMidnaRideShock() { onEndResetFlg1(ERFLG1_MIDNA_RIDE_SHOCK); }
|
||||
void onPlayerShadowNoDraw() { onNoResetFlg2(FLG2_PLAYER_SHADOW); }
|
||||
void offPlayerShadowNoDraw() { offNoResetFlg2(FLG2_PLAYER_SHADOW); }
|
||||
void onLightSwordGetEffect() { onEndResetFlg2(ERFLG2_UNK_10); }
|
||||
@@ -935,6 +944,8 @@ public:
|
||||
|
||||
void changeDemoMoveAngle(s16 i_angle) { mDemo.setMoveAngle(i_angle); }
|
||||
|
||||
void setItemPos(cXyz* i_itemPos) { mItemPos = *i_itemPos; }
|
||||
|
||||
static bool checkPeepEndSceneChange() { return getLastSceneMode() == 7; }
|
||||
|
||||
static int getLastSceneDamage() { return (dComIfGs_getLastSceneMode() >> 4) & 0x7F; }
|
||||
@@ -954,6 +965,7 @@ public:
|
||||
static int checkNowWolfPowerUp() { return checkNowWolfEyeUp(); }
|
||||
|
||||
static daMidna_c* getMidnaActor() { return m_midnaActor; }
|
||||
static void setMidnaActor(fopAc_ac_c* actor) { m_midnaActor = (daMidna_c*)actor; }
|
||||
|
||||
// not sure how to define this properly
|
||||
// static void onWolfEnemyCatch(fopAc_ac_c* i_actorP) { onWolfEnemyBiteAll(i_actorP,8);}
|
||||
|
||||
@@ -3381,23 +3381,19 @@ inline void dComIfGp_event_setTalkPartner(fopAc_ac_c* i_actor) {
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* dComIfGp_event_getTalkPartner() {
|
||||
u32 t = g_dComIfG_gameInfo.play.getEvent().mPtT;
|
||||
return g_dComIfG_gameInfo.play.getEvent().convPId(t);
|
||||
return g_dComIfG_gameInfo.play.getEvent().getPtT();
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* dComIfGp_event_getItemPartner() {
|
||||
u32 i = g_dComIfG_gameInfo.play.getEvent().mPtI;
|
||||
return g_dComIfG_gameInfo.play.getEvent().convPId(i);
|
||||
return g_dComIfG_gameInfo.play.getEvent().getPtI();
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* dComIfGp_event_getPt1() {
|
||||
u32 pt1 = g_dComIfG_gameInfo.play.getEvent().mPt1;
|
||||
return g_dComIfG_gameInfo.play.getEvent().convPId(pt1);
|
||||
return g_dComIfG_gameInfo.play.getEvent().getPt1();
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* dComIfGp_event_getPt2() {
|
||||
u32 pt2 = g_dComIfG_gameInfo.play.getEvent().mPt2;
|
||||
return g_dComIfG_gameInfo.play.getEvent().convPId(pt2);
|
||||
return g_dComIfG_gameInfo.play.getEvent().getPt2();
|
||||
}
|
||||
|
||||
inline BOOL dComIfGp_event_runCheck() {
|
||||
|
||||
+6
-5
@@ -159,6 +159,7 @@ public:
|
||||
fopAc_ac_c* getPt1() { return convPId(mPt1); }
|
||||
fopAc_ac_c* getPt2() { return convPId(mPt2); }
|
||||
fopAc_ac_c* getPtT() { return convPId(mPtT); }
|
||||
fopAc_ac_c* getPtI() { return convPId(mPtI); }
|
||||
fopAc_ac_c* getPtD() { return convPId(mPtd); }
|
||||
bool isChangeOK(void* param_0) { return mChangeOK == param_0; }
|
||||
u8 getPreItemNo() { return mPreItemNo; }
|
||||
@@ -169,11 +170,11 @@ public:
|
||||
public:
|
||||
/* 0x000 */ u8 field_0x0[4];
|
||||
/* 0x004 */ dEvt_order_c mOrder[8];
|
||||
/* 0x0C4 */ u32 mPt1;
|
||||
/* 0x0C8 */ u32 mPt2;
|
||||
/* 0x0CC */ u32 mPtT;
|
||||
/* 0x0D0 */ u32 mPtI;
|
||||
/* 0x0D4 */ u32 mPtd;
|
||||
/* 0x0C4 */ fpc_ProcID mPt1;
|
||||
/* 0x0C8 */ fpc_ProcID mPt2;
|
||||
/* 0x0CC */ fpc_ProcID mPtT;
|
||||
/* 0x0D0 */ fpc_ProcID mPtI;
|
||||
/* 0x0D4 */ fpc_ProcID mPtd;
|
||||
/* 0x0D8 */ u16 mEventFlag;
|
||||
/* 0x0DA */ u16 mFlag2;
|
||||
/* 0x0DC */ u16 mHindFlag;
|
||||
|
||||
@@ -328,6 +328,8 @@ public:
|
||||
J3DModel* getModel() { return mpModel; }
|
||||
void offMorfNone() { mMorfNone = false; }
|
||||
void onMorfNone() { mMorfNone = true; }
|
||||
J3DTransformInfo* getOldTransInfo() { return mpTransformInfo; }
|
||||
Quaternion* getOldQuaternion() { return mpQuat; }
|
||||
|
||||
private:
|
||||
/* 0x38 */ mDoExt_McaMorfCallBack1_c* mpCallback1;
|
||||
|
||||
@@ -260,7 +260,7 @@ Z2SoundHandlePool* Z2Creature::startCreatureVoice(JAISoundID i_soundID, s8 param
|
||||
/* 802C0AF8-802C0B70 2BB438 0078+00 3/0 2/0 0/0 .text
|
||||
* startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc */
|
||||
Z2SoundHandlePool* Z2Creature::startCreatureVoiceLevel(JAISoundID i_soundID, s8 param_1) {
|
||||
if (i_soundID == 0x501f0) {
|
||||
if (i_soundID == Z2SE_MDN_V_WAITD) {
|
||||
if (Z2GetStatusMgr()->getDemoStatus() == 2 || !Z2GetSceneMgr()->isInGame()) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -420,7 +420,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureSound(JAISoundID i_soundID, u32
|
||||
Z2SoundHandlePool* handle = mSoundObjAnime.startSound(i_soundID, param_1, param_2);
|
||||
|
||||
switch (mEnemyID) {
|
||||
case 0x19:
|
||||
case Z2_ENEMY_SF:
|
||||
if (i_soundID == Z2SE_EN_SF_BREAK_DOWN) {
|
||||
field_0xa3 = 1;
|
||||
Z2GetSoundObjMgr()->getEnemyList()->remove(this);
|
||||
@@ -429,7 +429,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureSound(JAISoundID i_soundID, u32
|
||||
Z2GetSoundObjMgr()->getEnemyList()->append(this);
|
||||
}
|
||||
break;
|
||||
case 0x23:
|
||||
case Z2_ENEMY_FZ:
|
||||
if (handle != NULL && handle->isSoundAttached() && i_soundID == Z2SE_EN_FZ_BOUND) {
|
||||
f32 volume = Z2Calc::linearTransform(param_1, 10.0f, 50.0f, 0.1f, 1.0f, false);
|
||||
f32 pitch = Z2Calc::linearTransform(param_1, 10.0f, 50.0f, 0.8f, 1.2f, false);
|
||||
@@ -437,16 +437,16 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureSound(JAISoundID i_soundID, u32
|
||||
(*handle)->getAuxiliary().movePitch(pitch, 0);
|
||||
}
|
||||
break;
|
||||
case 0x2d:
|
||||
case Z2_ENEMY_MS:
|
||||
Z2_E_ms_modVol(handle, mSoundObjAnime.field_0x1c);
|
||||
break;
|
||||
case 0x36:
|
||||
case Z2_ENEMY_SW:
|
||||
Z2_E_sw_modPitch(handle, param_1);
|
||||
break;
|
||||
case 0x26:
|
||||
case Z2_ENEMY_MM:
|
||||
Z2_E_mm_modPitch(handle, mSoundObjAnime.field_0x1c);
|
||||
break;
|
||||
case 0x35:
|
||||
case Z2_ENEMY_SM2:
|
||||
if (i_soundID == Z2SE_EN_SM_HIT) {
|
||||
field_0xa3 = 1;
|
||||
Z2GetSeqMgr()->setBattleLastHit(struct_80450869);
|
||||
@@ -485,17 +485,17 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureSoundLevel(JAISoundID i_soundID
|
||||
Z2SoundHandlePool* handle = mSoundObjAnime.startLevelSound(i_soundID, param_1, param_2);
|
||||
|
||||
switch (mEnemyID) {
|
||||
case 0x23:
|
||||
case Z2_ENEMY_FZ:
|
||||
if (handle != NULL && *handle != NULL && i_soundID == Z2SE_EN_FZ_MOVE) {
|
||||
f32 volume = Z2Calc::getParamByExp(param_1, 1.0f, 50.0f, 0.4f, 0.1f, 1.1f,
|
||||
Z2Calc::CURVE_SIGN_1);
|
||||
(*handle)->getAuxiliary().moveVolume(volume, 0);
|
||||
}
|
||||
break;
|
||||
case 0x36:
|
||||
case Z2_ENEMY_SW:
|
||||
Z2_E_sw_modPitch(handle, param_1);
|
||||
break;
|
||||
case 0x29:
|
||||
case Z2_ENEMY_RB:
|
||||
if (handle != NULL && *handle != NULL && i_soundID == Z2SE_EN_RB_MOVE) {
|
||||
f32 volume = Z2Calc::getParamByExp(param_1, 4.0f, 35.0f, 0.6f, 0.7f, 1.0f,
|
||||
Z2Calc::CURVE_SIGN_1);
|
||||
@@ -588,25 +588,25 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureVoice(JAISoundID i_soundID, s8
|
||||
Z2SoundHandlePool* handle = mSoundObjSimple1.startSound(i_soundID, var1, param_1);
|
||||
|
||||
switch (mEnemyID) {
|
||||
case 0x18:
|
||||
case Z2_ENEMY_SH:
|
||||
if (i_soundID == Z2SE_EN_SH_V_DEAD) {
|
||||
field_0xa3 = 1;
|
||||
Z2GetSeqMgr()->setBattleLastHit(struct_80450869);
|
||||
}
|
||||
break;
|
||||
case 0x1a:
|
||||
case Z2_ENEMY_BS:
|
||||
if (i_soundID == Z2SE_EN_BS_V_DEAD) {
|
||||
field_0xa3 = 1;
|
||||
Z2GetSeqMgr()->setBattleLastHit(struct_80450869);
|
||||
}
|
||||
break;
|
||||
case 0x2d:
|
||||
case Z2_ENEMY_MS:
|
||||
Z2_E_ms_modVol(handle, mSoundObjSimple1.field_0x1c);
|
||||
break;
|
||||
case 0x36:
|
||||
case Z2_ENEMY_SW:
|
||||
Z2_E_sw_modPitch(handle, mSoundObjSimple1.field_0x1c);
|
||||
break;
|
||||
case 0x26:
|
||||
case Z2_ENEMY_MM:
|
||||
Z2_E_mm_modPitch(handle, mSoundObjSimple1.field_0x1c);
|
||||
break;
|
||||
}
|
||||
@@ -622,7 +622,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureVoice(JAISoundID i_soundID, s8
|
||||
* startCreatureVoiceLevel__15Z2CreatureEnemyF10JAISoundIDSc */
|
||||
Z2SoundHandlePool* Z2CreatureEnemy::startCreatureVoiceLevel(JAISoundID i_soundID, s8 param_1) {
|
||||
u32 var1 = 0;
|
||||
if (mEnemyID == 7) {
|
||||
if (mEnemyID == Z2_ENEMY_RDY) {
|
||||
var1 = 1;
|
||||
}
|
||||
return mSoundObjSimple1.startLevelSound(i_soundID, var1, param_1);
|
||||
@@ -646,11 +646,11 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureExtraSoundLevel(JAISoundID i_so
|
||||
Z2SoundHandlePool* Z2CreatureEnemy::startCollisionSE(u32 param_0, u32 param_1) {
|
||||
u8 var1;
|
||||
switch (mEnemyID) {
|
||||
case 0x21:
|
||||
case Z2_ENEMY_WS:
|
||||
field_0xa3 = 1;
|
||||
Z2GetSeqMgr()->setBattleLastHit(struct_80450869);
|
||||
return mSoundObjAnime.startCollisionSE(param_0, param_1, NULL);
|
||||
case 0x2f:
|
||||
case Z2_ENEMY_BI:
|
||||
if (getSupervisor() != NULL) {
|
||||
Z2GetSoundObjMgr()->removeEnemy(this);
|
||||
}
|
||||
@@ -673,7 +673,8 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCollisionSE(u32 param_0, u32 param_1) {
|
||||
case 0x24:
|
||||
field_0xa3 = 1;
|
||||
var1 = struct_80450869;
|
||||
if (param_0 - 0x40000 <= 1 || param_0 - 0x40000 == 3) {
|
||||
if (param_0 == Z2SE_HIT_SWORD || param_0 == Z2SE_HIT_SWORD_STAB
|
||||
|| param_0 == Z2SE_HIT_WOLFBITE) {
|
||||
var1 = 0x14;
|
||||
}
|
||||
Z2GetSeqMgr()->setBattleLastHit(var1);
|
||||
|
||||
@@ -165,36 +165,36 @@ void Z2SoundObjMgr::searchEnemy() {
|
||||
bool bVar6 = false;
|
||||
u8 enemyId = this_00->mEnemyID;
|
||||
switch (enemyId) {
|
||||
case 0x36:
|
||||
case Z2_ENEMY_SW:
|
||||
if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1c)
|
||||
continue;
|
||||
break;
|
||||
case 0x11:
|
||||
case Z2_ENEMY_CR:
|
||||
if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1e)
|
||||
continue;
|
||||
break;
|
||||
case 0x27:
|
||||
case 0x28:
|
||||
case 0x39:
|
||||
case Z2_ENEMY_NZ:
|
||||
case Z2_ENEMY_PO:
|
||||
case Z2_ENEMY_HP:
|
||||
bVar6 = true;
|
||||
break;
|
||||
case 0x37:
|
||||
case Z2_ENEMY_RDB:
|
||||
if (iVar16 == 0)
|
||||
continue;
|
||||
break;
|
||||
case 0xa:
|
||||
case 0xb:
|
||||
case Z2_ENEMY_WB:
|
||||
case Z2_ENEMY_RD:
|
||||
if (iVar16 != 0)
|
||||
continue;
|
||||
case 0xc:
|
||||
case 0x16:
|
||||
case 0x1f:
|
||||
case 0x22:
|
||||
case 0x26:
|
||||
case 0x29:
|
||||
case 0x2b:
|
||||
case 0x30:
|
||||
case 0x35:
|
||||
case Z2_ENEMY_DN:
|
||||
case Z2_ENEMY_DB:
|
||||
case Z2_ENEMY_GE:
|
||||
case Z2_ENEMY_OC:
|
||||
case Z2_ENEMY_MM:
|
||||
case Z2_ENEMY_RB:
|
||||
case Z2_ENEMY_HB:
|
||||
case Z2_ENEMY_TT:
|
||||
case Z2_ENEMY_SM2:
|
||||
if (!Z2GetLink()->isRiding())
|
||||
break;
|
||||
if (Z2GetLink()->getMoveSpeed() <= 0x26)
|
||||
@@ -339,14 +339,14 @@ void Z2SoundObjMgr::setGhostEnemyState(u8 p1) {
|
||||
* getEnemyID__13Z2SoundObjMgrFPCcP26JSULink<15Z2CreatureEnemy> */
|
||||
u8 Z2SoundObjMgr::getEnemyID(char const* param_0, JSULink<Z2CreatureEnemy>* param_1) {
|
||||
if (param_0 != NULL) {
|
||||
for (u8 uVar2 = 0; uVar2 < 0x40; uVar2++) {
|
||||
for (u8 uVar2 = 0; uVar2 < ARRAY_SIZE(mEnemyInfo); uVar2++) {
|
||||
if (strcmp(param_0, mEnemyInfo[(u32)uVar2].mName) == 0) {
|
||||
append(param_1);
|
||||
return uVar2;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Z2_ENEMY_ID_0;
|
||||
return Z2_ENEMY_NULL;
|
||||
}
|
||||
|
||||
/* 802C0100-802C0120 2BAA40 0020+00 1/1 1/1 0/0 .text setBattleInit__13Z2SoundObjMgrFv */
|
||||
|
||||
@@ -4725,8 +4725,8 @@ void daAlink_c::setPolygonSpeed() {
|
||||
offNoResetFlg3(daPy_FLG3(FLG3_UNK_1000 | FLG3_UNK_2000));
|
||||
if ((!checkEventRun() || checkNoResetFlg0(FLG0_UNK_14000)) && !checkMagneBootsOn()) {
|
||||
cM3dGPla sp24;
|
||||
if (checkNoResetFlg3(FLG3_UNK_10000)) {
|
||||
offNoResetFlg3(FLG3_UNK_10000);
|
||||
if (checkNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED)) {
|
||||
offNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED);
|
||||
field_0x3594 = field_0x35a0;
|
||||
field_0x35a0 = cXyz::Zero;
|
||||
}
|
||||
@@ -7742,8 +7742,8 @@ BOOL daAlink_c::checkAutoJumpAction() {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
}
|
||||
|
||||
f32 var_f31 = field_0x35c4.x + (field_0x35ac.x + (speed.x + field_0x3594.x));
|
||||
f32 var_f30 = field_0x35c4.z + (field_0x35ac.z + (speed.z + field_0x3594.z));
|
||||
f32 var_f31 = field_0x35c4.x + (mWindSpeed.x + (speed.x + field_0x3594.x));
|
||||
f32 var_f30 = field_0x35c4.z + (mWindSpeed.z + (speed.z + field_0x3594.z));
|
||||
BOOL var_r28 = true;
|
||||
|
||||
f32 var_f29 = JMAFastSqrt((var_f31 * var_f31) + (var_f30 * var_f30));
|
||||
@@ -7889,7 +7889,7 @@ BOOL daAlink_c::checkAutoJumpAction() {
|
||||
return procFallInit(1, sp24);
|
||||
}
|
||||
}
|
||||
} else if (checkGrabGlide() && field_0x35ac.y > 10.0f) {
|
||||
} else if (checkGrabGlide() && mWindSpeed.y > 10.0f) {
|
||||
mLinkAcch.i_ClrGroundHit();
|
||||
return procAutoJumpInit(1);
|
||||
} else if (checkEndResetFlg0(ERFLG0_UNK_100) && mLinkAcch.i_ChkGroundHit() && !checkWolf()) {
|
||||
@@ -9931,10 +9931,10 @@ void daAlink_c::posMove() {
|
||||
current.pos += field_0x3594;
|
||||
|
||||
if (checkModeFlg(2)) {
|
||||
current.pos += field_0x35ac;
|
||||
current.pos += mWindSpeed;
|
||||
} else {
|
||||
current.pos.x += field_0x35ac.x;
|
||||
current.pos.z += field_0x35ac.z;
|
||||
current.pos.x += mWindSpeed.x;
|
||||
current.pos.z += mWindSpeed.z;
|
||||
}
|
||||
} else if (checkNoResetFlg0(FLG0_UNK_14000)) {
|
||||
current.pos += field_0x3594;
|
||||
|
||||
@@ -208,7 +208,7 @@ int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgT
|
||||
setDamageColorTime();
|
||||
}
|
||||
|
||||
field_0x3006 = 0;
|
||||
mIceDamageWaitTimer = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -391,8 +391,8 @@ bool daAlink_c::checkLargeAttack(int param_0) const {
|
||||
|
||||
/* 800D7C40-800D8F3C 0D2580 12FC+00 1/1 0/0 0/0 .text checkDamageAction__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkDamageAction() {
|
||||
s16 spE = field_0x3006;
|
||||
field_0x3006 = 0;
|
||||
s16 spE = mIceDamageWaitTimer;
|
||||
mIceDamageWaitTimer = 0;
|
||||
|
||||
u8 spA = field_0x2fca;
|
||||
field_0x2fca = 0;
|
||||
@@ -513,17 +513,17 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
field_0x2fca = spA;
|
||||
int sp2C = checkPolyDamage();
|
||||
field_0x2fca = 0;
|
||||
field_0x3006 = spE;
|
||||
mIceDamageWaitTimer = spE;
|
||||
|
||||
if (sp2C & 0x80) {
|
||||
field_0x3006++;
|
||||
if (field_0x3006 < daAlinkHIO_damage_c0::m.mFreezeTime) {
|
||||
mIceDamageWaitTimer++;
|
||||
if (mIceDamageWaitTimer < daAlinkHIO_damage_c0::m.mFreezeTime) {
|
||||
sp2C = 0;
|
||||
}
|
||||
} else if (field_0x3006 > 3) {
|
||||
field_0x3006 -= 3;
|
||||
} else if (mIceDamageWaitTimer > 3) {
|
||||
mIceDamageWaitTimer -= 3;
|
||||
} else {
|
||||
field_0x3006 = 0;
|
||||
mIceDamageWaitTimer = 0;
|
||||
}
|
||||
|
||||
if (sp2C != 0) {
|
||||
@@ -2068,7 +2068,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
mUnderFrameCtrl[0].setEnd(3);
|
||||
mUnderFrameCtrl[0].setAttribute(0);
|
||||
setFaceBasicTexture(FTANM_UNK_90);
|
||||
field_0x2f9b = 1;
|
||||
mMidnaAnm = 1;
|
||||
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x48;
|
||||
} else {
|
||||
setSingleAnime(ANM_SWIM_DMG_FREEZE, daAlinkHIO_damNormal_c0::m.field_0x60,
|
||||
|
||||
@@ -1548,7 +1548,7 @@ int daAlink_c::procAutoJump() {
|
||||
field_0x3198 = 0x32;
|
||||
}
|
||||
|
||||
if (checkGrabGlide() && field_0x35ac.y > 0.0f) {
|
||||
if (checkGrabGlide() && mWindSpeed.y > 0.0f) {
|
||||
speed.y = 0.0f;
|
||||
}
|
||||
|
||||
@@ -2009,10 +2009,6 @@ int daAlink_c::procCrouch() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL daMidna_c::checkMidnaRealBody() {
|
||||
return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3);
|
||||
}
|
||||
|
||||
/* 800C77F4-800C7C64 0C2134 0470+00 4/2 0/0 0/0 .text procCoMetamorphoseInit__9daAlink_cFv */
|
||||
int daAlink_c::procCoMetamorphoseInit() {
|
||||
int var_r29 = 0;
|
||||
@@ -4010,8 +4006,8 @@ int daAlink_c::draw() {
|
||||
tevStr.field_0x362 = b * var_f2;
|
||||
var_r31 = 0;
|
||||
}
|
||||
} else if (field_0x3006 != 0) {
|
||||
f32 temp_f4 = 1.0f - (field_0x3006 * (1.0f / daAlinkHIO_damage_c0::m.mFreezeTime));
|
||||
} else if (mIceDamageWaitTimer != 0) {
|
||||
f32 temp_f4 = 1.0f - (mIceDamageWaitTimer * (1.0f / daAlinkHIO_damage_c0::m.mFreezeTime));
|
||||
f32 temp_f3 = 1.0f - temp_f4;
|
||||
|
||||
tevStr.mFogColor.r = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitR) +
|
||||
|
||||
@@ -1222,9 +1222,9 @@ int daAlink_c::setDoubleAnimeWolf(f32 param_0, f32 param_1, f32 param_2,
|
||||
setFaceBasicTexture(FTANM_UNK_8B);
|
||||
|
||||
if (checkWolfLieCode()) {
|
||||
field_0x2f9b = 2;
|
||||
mMidnaAnm = 2;
|
||||
} else {
|
||||
field_0x2f9b = m_wlAnmDataTable[param_3].field_0x2;
|
||||
mMidnaAnm = m_wlAnmDataTable[param_3].field_0x2;
|
||||
}
|
||||
|
||||
daAlink_WANM var_r27;
|
||||
@@ -1284,9 +1284,9 @@ int daAlink_c::setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed,
|
||||
setFaceBasicTexture(FTANM_UNK_8B);
|
||||
|
||||
if (checkWolfLieCode()) {
|
||||
field_0x2f9b = 2;
|
||||
mMidnaAnm = 2;
|
||||
} else {
|
||||
field_0x2f9b = m_wlAnmDataTable[i_anmID].field_0x2;
|
||||
mMidnaAnm = m_wlAnmDataTable[i_anmID].field_0x2;
|
||||
}
|
||||
|
||||
field_0x215c = mUnderFrameCtrl;
|
||||
@@ -1385,7 +1385,7 @@ int daAlink_c::checkNextActionWolf(int param_0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkEndResetFlg1(ERFLG1_UNK_40) &&
|
||||
if (checkEndResetFlg1(ERFLG1_MIDNA_RIDE_SHOCK) &&
|
||||
(mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_SERVICE_WAIT ||
|
||||
mProcID == PROC_WOLF_TIRED_WAIT || (!checkInputOnR() && mProcID == PROC_WOLF_MOVE) ||
|
||||
mProcID == PROC_WOLF_LIE_START || mProcID == PROC_WOLF_LIE_MOVE ||
|
||||
|
||||
@@ -257,7 +257,7 @@ void daDoor20_c::setEventPrm() {
|
||||
}
|
||||
} else {
|
||||
if (daPy_py_c::i_checkNowWolf()) {
|
||||
if (!player->checkMidnaRide() || !daMidna_c::i_checkMidnaRealBody()) {
|
||||
if (!player->checkMidnaRide() || !daMidna_c::checkMidnaRealBody()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
+3196
-1406
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1079,7 +1079,7 @@ u32 dEvt_control_c::getPId(void* actor) {
|
||||
|
||||
/* 800432EC-8004331C 03DC2C 0030+00 7/7 13/13 16/16 .text convPId__14dEvt_control_cFUi */
|
||||
fopAc_ac_c* dEvt_control_c::convPId(fpc_ProcID id) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge(fpcSch_JudgeByID, &id);
|
||||
return fopAcM_SearchByID(id);
|
||||
}
|
||||
|
||||
/* 8004331C-800433F0 03DC5C 00D4+00 0/0 1/1 0/0 .text getStbDemoData__14dEvt_control_cFPc
|
||||
|
||||
Reference in New Issue
Block a user