Anm enum work (#2511)

* Added enums for b_gg, b_gos, and b_mgn

* Added enum for d_a_b_tn (might have more work for it)

* b_yo and b_zant enum work

* more enum work

* fixed mgn match break
This commit is contained in:
Carco_21 2025-06-29 18:50:11 -04:00 committed by GitHub
parent aff8180fce
commit 844a554a3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 1514 additions and 1594 deletions

View File

@ -135,12 +135,12 @@ public:
private:
/* 0x05AC */ request_of_phase_process_class mPhaseReq1;
/* 0x05B4 */ request_of_phase_process_class mPhaseReq2;
/* 0x05BC */ J3DModel* mpModels[16];
/* 0x05BC */ J3DModel* mpPartModels[16];
/* 0x05FC */ mDoExt_McaMorfSO* mpModelMorf1;
/* 0x0600 */ mDoExt_McaMorfSO* mpModelMorf2;
/* 0x0604 */ mDoExt_brkAnm* mpBrkAnms[16];
/* 0x0644 */ mDoExt_brkAnm* mpBrkAnm;
/* 0x0648 */ J3DModel* mpModel;
/* 0x0648 */ J3DModel* swordEffectModel;
/* 0x064C */ Z2CreatureEnemy mSound;
/* 0x06F0 */ int mActionMode1;
/* 0x06F4 */ int mActionMode2;

View File

@ -142,7 +142,7 @@ public:
/* 0x05BC */ J3DModel* mpSwordRModel;
/* 0x05C0 */ J3DModel* mpMahojinModel;
/* 0x05C4 */ J3DModel* mpMahojinModel2;
/* 0x05C8 */ mDoExt_brkAnm* mpMahojinBrk;
/* 0x05C8 */ mDoExt_brkAnm* mpMahojinEndBrk;
/* 0x05CC */ mDoExt_btkAnm* mpMahojinBtk;
/* 0x05D0 */ mDoExt_btkAnm* mpMahojinStartBtk;
/* 0x05D4 */ mDoExt_brkAnm* mpMahojinBrk2;
@ -240,6 +240,91 @@ public:
/* 0x38AC */ u32 field_0x38ac[2];
/* 0x38B4 */ u32 field_0x38b4;
/* 0x38B8 */ u8 mInitHIO;
enum B_ZAN_RES_FILE_ID {
/* BCK */
/* 0x07 */ BCK_ZAN_DAMAGEL_A = 7,
/* 0x08 */ BCK_ZAN_DAMAGER_A,
/* 0x09 */ BCK_ZAN_DIE_DEMO,
/* 0x0A */ BCK_ZAN_FAINT,
/* 0x0B */ BCK_ZAN_FALL,
/* 0x0C */ BCK_ZAN_FLOAT_APPEAR,
/* 0x0D */ BCK_ZAN_FLOAT_APPEARSHORT,
/* 0x0E */ BCK_ZAN_FLOAT_APPEARWAIT,
/* 0x0F */ BCK_ZAN_FLOAT_DAMAGEL,
/* 0x10 */ BCK_ZAN_FLOAT_DAMAGER,
/* 0x11 */ BCK_ZAN_FLOAT_REACTION,
/* 0x12 */ BCK_ZAN_FLOAT_WAIT,
/* 0x13 */ BCK_ZAN_FLOAT_WAITRETURN,
/* 0x14 */ BCK_ZAN_GROUND_REACTION,
/* 0x15 */ BCK_ZAN_HOOK_HIT,
/* 0x16 */ BCK_ZAN_HOOK_RELEASE,
/* 0x17 */ BCK_ZAN_HOOK_WAIT,
/* 0x18 */ BCK_ZAN_HUGE,
/* 0x19 */ BCK_ZAN_HUGE_LANDING,
/* 0x1A */ BCK_ZAN_JUMP_A,
/* 0x1B */ BCK_ZAN_JUMP_B,
/* 0x1C */ BCK_ZAN_LANDING,
/* 0x1D */ BCK_ZAN_LANDING_DAMAGE,
/* 0x1E */ BCK_ZAN_LANDING_WAIT,
/* 0x1F */ BCK_ZAN_LAST_DEMO,
/* 0x20 */ BCK_ZAN_LV1_FATIGUE,
/* 0x21 */ BCK_ZAN_LV1_JUMP_A,
/* 0x22 */ BCK_ZAN_LV1_JUMP_B,
/* 0x23 */ BCK_ZAN_MAGICSHOOTA_A,
/* 0x24 */ BCK_ZAN_MAGICSHOOTA_B,
/* 0x25 */ BCK_ZAN_MAGICSHOOTA_B_A,
/* 0x26 */ BCK_ZAN_MAGICSHOOTA_B_B,
/* 0x27 */ BCK_ZAN_MAGICSHOOTA_B_C,
/* 0x28 */ BCK_ZAN_MAGICSHOOTA_C,
/* 0x29 */ BCK_ZAN_MAGICSHOOTA_D,
/* 0x2A */ BCK_ZAN_OP_1,
/* 0x2B */ BCK_ZAN_OP_2,
/* 0x2C */ BCK_ZAN_OP_3,
/* 0x2D */ BCK_ZAN_OP_RISE,
/* 0x2E */ BCK_ZAN_SHIND_L,
/* 0x2F */ BCK_ZAN_SHIND_R,
/* 0x30 */ BCK_ZAN_SPIN,
/* 0x31 */ BCK_ZAN_SWAMP_FALL_A,
/* 0x32 */ BCK_ZAN_SWAMP_FALL_B,
/* 0x33 */ BCK_ZAN_SWAMP_FALL_LOOP,
/* 0x34 */ BCK_ZAN_SWAMP_LANDING,
/* 0x35 */ BCK_ZAN_SWIM,
/* 0x36 */ BCK_ZAN_SW_ATTACK,
/* 0x37 */ BCK_ZAN_SW_ATTACKB,
/* 0x38 */ BCK_ZAN_SW_DAMAGEL,
/* 0x39 */ BCK_ZAN_SW_DAMAGER,
/* 0x3A */ BCK_ZAN_SW_FATIGUE,
/* 0x3B */ BCK_ZAN_SW_WAIT,
/* 0x3C */ BCK_ZAN_SW_WALK,
/* 0x3D */ BCK_ZAN_TRAMPLEA,
/* 0x3E */ BCK_ZAN_TRAMPLEB,
/* 0x3F */ BCK_ZAN_TRAMPLEC,
/* 0x40 */ BCK_ZAN_TRAMPLED,
/* 0x41 */ BCK_ZAN_WAIT,
/* 0x42 */ BCK_ZZ_APPEARANCE,
/* 0x43 */ BCK_ZZ_CLOSE,
/* 0x44 */ BCK_ZZ_OPEN,
/* BMDR */
/* 0x47 */ BMDR_EF_TK2BALL = 0x47,
/* 0x48 */ BMDR_ZAN,
/* 0x49 */ BMDR_ZAN_MAHOJIN,
/* 0x4A */ BMDR_ZAN_SWORD_L,
/* 0x4B */ BMDR_ZAN_SWORD_R,
/* 0x4C */ BMDR_ZZ,
/* BRK */
/* 0x4F */ BRK_ZAN_MAHOJIN_END = 0x4F,
/* 0x50 */ BRK_ZZ,
/* BTK */
/* 0x53 */ BTK_ZAN_MAHOJIN = 0x53,
/* 0x54 */ BTK_ZAN_MAHOJIN_START,
/* DZB */
/* 0x57 */ DZB_ZZ = 0x57,
};
};
STATIC_ASSERT(sizeof(daB_ZANT_c) == 0x38BC);

View File

@ -67,6 +67,29 @@ class daNpc_Jagar_Param_c {
class daNpc_Jagar_c : public daNpcT_c {
public:
enum JAGAR2_RES_FILE_ID {
/* BCK */
/* 0x05 */ BCK_JAGA_F_SURPRISE = 5,
/* 0x06 */ BCK_JAGA_F_SURPRISE_WAIT,
/* 0x07 */ BCK_JAGA_F_WORRY_TALK,
/* 0x08 */ BCK_JAGA_RUN_A,
/* 0x09 */ BCK_JAGA_SURPRISE,
/* 0x0A */ BCK_JAGA_SURPRISE_WAIT,
/* 0x0B */ BCK_JAGA_UNADUKI,
/* 0x0C */ BCK_JAGA_WORRY_TALK,
/* 0x0D */ BCK_JAGA_WORRY_WAIT,
/* 0x0E */ BCK_JAGA_WORRY_WALK,
/* BTP */
/* 0x11 */ BTP_JAGA_BLINK = 0x11,
/* 0x12 */ BTP_JAGA_F_SURPRISE,
/* 0x13 */ BTP_JAGA_F_SURPRISE_WAIT,
/* 0x14 */ BTP_JAGA_F_WORRY_TALK,
/* EVT */
/* 0x17 */ EVT_EVENT_LIST = 0x17,
};
typedef int (daNpc_Jagar_c::*cutFunc)(int);
typedef int (daNpc_Jagar_c::*actionFunc)(void*);

View File

@ -54,6 +54,21 @@ public:
/* 0x600 */ Z2SoundObjSimple mSound;
/* 0x620 */ ms_chain_s mChains[4];
/* 0x8A0 */ u8 field_0x8a0;
enum MAGNESIMA_RES_FILE_ID {
/* BMDR */
/* 0x06 */ BMDR_KUSARI = 6,
/* 0x07 */ BMDR_S_MAGNE_SIMA,
/* BRK */
/* 0x0A */ BRK_S_MAGNE_SIMA = 0xA,
/* BTK */
/* 0x0D */ BTK_S_MAGNE_SIMA = 0xD,
/* DZB */
/* 0x10 */ DZB_S_MAGNE_SIMA = 0x10,
};
};
STATIC_ASSERT(sizeof(obj_msima_class) == 0x8a4);

View File

@ -5,8 +5,7 @@
#include "d/actor/d_a_alink.h"
/* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv
*/
/* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv */
s16 daAlink_c::getBombExplodeTime() const {
return daAlinkHIO_bomb_c0::m.mExplodeTime;
}
@ -16,8 +15,7 @@ f32 daAlink_c::getBombGravity() const {
return daAlinkHIO_bomb_c0::m.mGravity;
}
/* 800E3780-800E3790 0DE0C0 0010+00 0/0 0/0 2/2 .text getBombMaxFallSpeed__9daAlink_cCFv
*/
/* 800E3780-800E3790 0DE0C0 0010+00 0/0 0/0 2/2 .text getBombMaxFallSpeed__9daAlink_cCFv */
f32 daAlink_c::getBombMaxFallSpeed() const {
return daAlinkHIO_bomb_c0::m.mMaxFallSpeed;
}
@ -47,30 +45,27 @@ f32 daAlink_c::getBombAtR() const {
return daAlinkHIO_bomb_c0::m.mAttackRadius;
}
/* 800E37E0-800E37F0 0DE120 0010+00 0/0 0/0 1/1 .text getEnemyBombColorR__9daAlink_cCFv
*/
/* 800E37E0-800E37F0 0DE120 0010+00 0/0 0/0 1/1 .text getEnemyBombColorR__9daAlink_cCFv */
s16 daAlink_c::getEnemyBombColorR() const {
return daAlinkHIO_bomb_c0::m.mEnemyBombColorR;
}
/* 800E37F0-800E3800 0DE130 0010+00 0/0 0/0 2/2 .text getBombWaterGravity__9daAlink_cCFv
*/
/* 800E37F0-800E3800 0DE130 0010+00 0/0 0/0 2/2 .text getBombWaterGravity__9daAlink_cCFv */
f32 daAlink_c::getBombWaterGravity() const {
return daAlinkHIO_bomb_c0::m.mWaterGravity;
}
/* 800E3800-800E3810 0DE140 0010+00 0/0 0/0 2/2 .text getBombWaterMaxFallSpeed__9daAlink_cCFv */
/* 800E3800-800E3810 0DE140 0010+00 0/0 0/0 2/2 .text getBombWaterMaxFallSpeed__9daAlink_cCFv */
f32 daAlink_c::getBombWaterMaxFallSpeed() const {
return daAlinkHIO_bomb_c0::m.mWaterMaxFallSpeed;
}
/* 800E3810-800E3820 0DE150 0010+00 0/0 0/0 1/1 .text
* getBombExplodeWaterEffectLimit__9daAlink_cCFv */
/* 800E3810-800E3820 0DE150 0010+00 0/0 0/0 1/1 .text getBombExplodeWaterEffectLimit__9daAlink_cCFv */
f32 daAlink_c::getBombExplodeWaterEffectLimit() const {
return daAlinkHIO_bomb_c0::m.mExplodeWaterEffectLimit;
}
/* 800E3820-800E3830 0DE160 0010+00 0/0 0/0 1/1 .text getBombInsectLimitAngle__9daAlink_cCFv */
/* 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;
}

View File

@ -22,16 +22,26 @@
#define ACTION_B_DOWN 23
#define ACTION_START 50
#define ANM_ATTACK 5
#define ANM_ATTACK_WAIT 6
#define ANM_DAMAGE 7
#define ANM_EAT 8
#define ANM_EAT_WAIT 9
#define ANM_NO_DAMAGE 10
#define ANM_ROUT 11
#define ANM_WAIT 12
#define ANM_WAIT01 13
#define ANM_WAIT02 14
enum B_BH_RES_FILE_ID {
/* BCK */
/* 0x05 */ BCK_BH_ATTACK = 5,
/* 0x06 */ BCK_BH_ATTACKWAIT,
/* 0x07 */ BCK_BH_DAMAGE,
/* 0x08 */ BCK_BH_EAT,
/* 0x09 */ BCK_BH_EATWAIT,
/* 0x0A */ BCK_BH_NODAMAGE,
/* 0x0B */ BCK_BH_ROUT,
/* 0x0C */ BCK_BH_WAIT,
/* 0x0D */ BCK_BH_WAIT01,
/* 0x0E */ BCK_BH_WAIT02,
/* BMDR */
/* 0x11 */ BMDR_BH_KUKI = 0x11,
/* 0x12 */ BMDR_BH_LEAF,
/* BMDV */
/* 0x15 */ BMDV_BH = 0x15,
};
/* 805AE26C-805AE2A4 0000EC 0038+00 1/1 0/0 0/0 .text __ct__12daB_BH_HIO_cFv */
daB_BH_HIO_c::daB_BH_HIO_c() {
@ -122,7 +132,7 @@ static void b_bh_wait(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_WAIT, 10.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_WAIT, 10.0f, 2, 1.0f);
i_this->mMode = 1;
if (a_this->health <= 1) {
i_this->mTimers[1] = ((f32)l_HIO.attack_freq_a / 2) + cM_rndF((f32)l_HIO.attack_freq_a / 2);
@ -209,7 +219,7 @@ static void b_bh_attack_1(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_ATTACK_WAIT, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_ATTACKWAIT, 5.0f, 2, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = NREG_S(0) + 35;
@ -221,7 +231,7 @@ static void b_bh_attack_1(b_bh_class* i_this) {
break;
case 2:
if (i_this->mTimers[0] == NREG_S(4) + 8) {
anm_init(i_this, ANM_ATTACK, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_ATTACK, 3.0f, 0, 1.0f);
}
a_this->current.angle.y = i_this->field_0x684;
@ -279,8 +289,8 @@ static void b_bh_attack_1(b_bh_class* i_this) {
break;
}
if (i_this->mAnm == ANM_ATTACK && i_this->mpModelMorf->isStop()) {
anm_init(i_this, ANM_WAIT02, 5.0f, 2, 1.0f);
if (i_this->mAnm == BCK_BH_ATTACK && i_this->mpModelMorf->isStop()) {
anm_init(i_this, BCK_BH_WAIT02, 5.0f, 2, 1.0f);
}
cLib_addCalc2(&a_this->speedF, target_speed, 1.0f, var_f30);
@ -299,7 +309,7 @@ static void b_bh_bombeat(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_EAT, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_EAT, 3.0f, 0, 1.0f);
i_this->mMode = 1;
i_this->mSound.startCreatureVoice(Z2SE_EN_BH_V_EAT, -1);
@ -313,7 +323,7 @@ static void b_bh_bombeat(b_bh_class* i_this) {
break;
case 1:
if (i_this->mpModelMorf->isStop()) {
anm_init(i_this, ANM_EAT_WAIT, 1.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_EATWAIT, 1.0f, 2, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = 40;
}
@ -321,7 +331,7 @@ static void b_bh_bombeat(b_bh_class* i_this) {
case 2:
if (i_this->mTimers[0] == 0) {
i_this->mMode = 3;
anm_init(i_this, ANM_DAMAGE, 1.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_DAMAGE, 1.0f, 0, 1.0f);
i_this->field_0x90c = 2;
i_this->field_0xf22 = 1;
@ -356,7 +366,7 @@ static s8 b_bh_down(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_ROUT, 1.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_ROUT, 1.0f, 2, 1.0f);
i_this->field_0x690 = 0.0f;
i_this->mMode = 1;
i_this->mTimers[0] = 200;
@ -416,7 +426,7 @@ static s8 b_bh_down(b_bh_class* i_this) {
a_this->current.pos.z = i_this->mBasePos.z;
a_this->health = 3;
anm_init(i_this, ANM_WAIT, 10.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_WAIT, 10.0f, 2, 1.0f);
i_this->mAction = ACTION_B_WAIT;
i_this->mMode = 1;
@ -473,7 +483,7 @@ static void b_bh_b_wait(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_WAIT, 10.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_WAIT, 10.0f, 2, 1.0f);
i_this->mMode = 1;
i_this->mTimers[1] = l_HIO.attack_freq_b + cM_rndF(l_HIO.attack_freq_b);
break;
@ -540,14 +550,14 @@ static void b_bh_b_attack_1(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_ATTACK_WAIT, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_ATTACKWAIT, 5.0f, 2, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = NREG_S(0) + 35;
i_this->mSound.startCreatureVoice(Z2SE_EN_BH_V_ATTACK, -1);
break;
case 2:
if (i_this->mTimers[0] == NREG_S(4) + 8) {
anm_init(i_this, ANM_ATTACK, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_ATTACK, 3.0f, 0, 1.0f);
}
a_this->current.angle.y = i_this->field_0x684;
@ -600,8 +610,8 @@ static void b_bh_b_attack_1(b_bh_class* i_this) {
break;
}
if (i_this->mAnm == ANM_ATTACK && i_this->mpModelMorf->isStop()) {
anm_init(i_this, ANM_WAIT02, 5.0f, 2, 1.0f);
if (i_this->mAnm == BCK_BH_ATTACK && i_this->mpModelMorf->isStop()) {
anm_init(i_this, BCK_BH_WAIT02, 5.0f, 2, 1.0f);
}
cLib_addCalc2(&a_this->speedF, target_speed, 1.0f, speed_step);
@ -619,13 +629,13 @@ static void b_bh_b_bombeat(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_EAT, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_EAT, 3.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_BH_V_EAT, -1);
i_this->mMode = 1;
break;
case 1:
if (i_this->mpModelMorf->isStop()) {
anm_init(i_this, ANM_EAT_WAIT, 1.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_EATWAIT, 1.0f, 2, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = 60;
}
@ -633,7 +643,7 @@ static void b_bh_b_bombeat(b_bh_class* i_this) {
case 2:
if (i_this->mTimers[0] == 0) {
i_this->mMode = 3;
anm_init(i_this, ANM_DAMAGE, 1.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_DAMAGE, 1.0f, 0, 1.0f);
i_this->field_0x90c = 2;
i_this->field_0xf22 = 1;
i_this->mTimers[0] = 20;
@ -667,7 +677,7 @@ static s8 b_bh_b_down(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_ROUT, 1.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_ROUT, 1.0f, 2, 1.0f);
i_this->field_0x690 = 0.0f;
i_this->mMode = 1;
i_this->mTimers[0] = 200;
@ -735,7 +745,7 @@ static void b_bh_start(b_bh_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, ANM_WAIT, 10.0f, 2, 1.0f);
anm_init(i_this, BCK_BH_WAIT, 10.0f, 2, 1.0f);
if (i_this->mID != 0) {
i_this->mpModelMorf->setFrame(10.0f);
}
@ -959,7 +969,7 @@ static void damage_check(b_bh_class* i_this) {
i_this->mMode = 1;
i_this->mTimers[1] = l_HIO.attack_freq_a + cM_rndF(l_HIO.attack_freq_a);
i_this->mTimers[0] = 0;
anm_init(i_this, ANM_NO_DAMAGE, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_NODAMAGE, 3.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_BH_V_NODAMAGE, -1);
dComIfGp_getVibration().StartShock(VIBMODE_S_POWER8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
} else {
@ -1015,13 +1025,13 @@ static void damage_check(b_bh_class* i_this) {
def_se_set(&i_this->mSound, i_this->mAtInfo.mpCollider, 0x2D, NULL);
if (i_this->mAction != ACTION_BOMB_EAT && i_this->mAction != ACTION_B_BOMB_EAT) {
anm_init(i_this, ANM_NO_DAMAGE, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_BH_NODAMAGE, 3.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_BH_V_NODAMAGE, -1);
}
}
if (i_this->mAnm == ANM_NO_DAMAGE && i_this->mpModelMorf->isStop()) {
anm_init(i_this, ANM_WAIT, 10.0f, 2, 1.0f);
if (i_this->mAnm == BCK_BH_NODAMAGE && i_this->mpModelMorf->isStop()) {
anm_init(i_this, BCK_BH_WAIT, 10.0f, 2, 1.0f);
}
}
}
@ -1207,7 +1217,7 @@ static void anm_se_set(b_bh_class* i_this) {
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
f32 particle_target_size = 0.0f;
if (i_this->mAnm == ANM_WAIT && a_this->current.pos.y > 50.0f) {
if (i_this->mAnm == BCK_BH_WAIT && a_this->current.pos.y > 50.0f) {
particle_target_size = 1.0f;
}
@ -1446,12 +1456,12 @@ static int daB_BH_Delete(b_bh_class* i_this) {
static int useHeapInit(fopAc_ac_c* i_this) {
b_bh_class* a_this = (b_bh_class*)i_this;
a_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("B_BH", 0x15), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("B_BH", 12), 2, 1.0f, 0, -1, &a_this->mSound, 0, 0x11000084);
a_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("B_BH", BMDV_BH), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("B_BH", 12), 2, 1.0f, 0, -1, &a_this->mSound, 0, 0x11000084);
if (a_this->mpModelMorf == NULL || a_this->mpModelMorf->getModel() == NULL) {
return 0;
}
void* modelData = dComIfG_getObjectRes("B_BH", 0x11);
void* modelData = dComIfG_getObjectRes("B_BH", BMDR_BH_KUKI);
JUT_ASSERT(2475, modelData != 0);
for (int i = 0; i < 17; i++) {
@ -1463,7 +1473,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
a_this->field_0x88c[i] = 1.0f;
}
modelData = dComIfG_getObjectRes("B_BH", 0x12);
modelData = dComIfG_getObjectRes("B_BH", BMDR_BH_LEAF);
JUT_ASSERT(2491, modelData != 0);
for (int i = 0; i < 17; i++) {

View File

@ -194,23 +194,7 @@ enum daB_BQ_JNT {
JNT_SLEAF_UR2,
};
/* 805BA874-805BA880 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 805BA880-805BA894 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 */] = {
0x02000201,
/* padding */
0x40080000,
0x00000000,
0x3FE00000,
0x00000000,
};
#pragma pop
UNK_REL_DATA;
/* 805B356C-805B35A0 0000EC 0034+00 1/1 0/0 0/0 .text __ct__12daB_BQ_HIO_cFv */
daB_BQ_HIO_c::daB_BQ_HIO_c() {

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,22 @@
#include "d/d_com_inf_game.h"
#include "d/actor/d_a_b_go.h"
enum Action {
/* 0x00 */ ACTION_WAIT,
/* 0x01 */ ACTION_WALK,
/* 0x02 */ ACTION_BALL,
/* 0x03 */ ACTION_STICK,
};
enum B_GOS_RES_FILE_ID {
/* BCK */
/* 0x04 */ BCK_GRA_WAIT_AGRA_RUN_A = 4,
/* 0x05 */ BCK_GRA_WAIT_AGRA_TO_STONE_NORMAL,
/* 0x06 */ BCK_GRA_WAIT_AGRA_WAIT_A,
/* BMDR */
/* 0x09 */ BMDR_GRA_A = 9,
};
/* 8060541C-80605514 000000 00F8+00 1/1 0/0 0/0 .data j_info */
static b_gos_j_info j_info[] = {
@ -61,13 +76,13 @@ static void wait(b_gos_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 6, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
anm_init(i_this, BCK_GRA_WAIT_AGRA_WAIT_A, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 1;
i_this->mTimers[0] = cM_rndF(30) + 30.0f;
break;
case 1:
if (i_this->mTimers[0] == 0) {
i_this->mAction = 1;
i_this->mAction = ACTION_WALK;
i_this->mMode = 0;
}
break;
@ -89,7 +104,7 @@ static void walk(b_gos_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 4, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
anm_init(i_this, BCK_GRA_WAIT_AGRA_RUN_A, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 1;
i_this->mTimers[0] = cM_rndF(60) + 60.0f;
i_this->mWalkDirection = cM_rndF(0x10000);
@ -97,7 +112,7 @@ static void walk(b_gos_class* i_this) {
case 1:
speed = l_HIO.mNormalSpeed;
if (i_this->mTimers[0] == 0) {
i_this->mAction = 0;
i_this->mAction = ACTION_WAIT;
i_this->mMode = 0;
}
break;
@ -116,14 +131,14 @@ static void ball(b_gos_class* i_this) {
// fallthrough
case 1:
if (i_this->mTimers[0] == 0) {
anm_init(i_this, 5, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
anm_init(i_this, BCK_GRA_WAIT_AGRA_TO_STONE_NORMAL, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = cM_rndF(30) + 60.0f;
}
break;
case 2:
if (i_this->mTimers[0] == 0) {
i_this->mAction = 3;
i_this->mAction = ACTION_STICK;
i_this->mMode = 0;
}
break;
@ -197,17 +212,17 @@ static void action(b_gos_class* i_this) {
var_r29 = 0;
switch (i_this->mAction) {
case 0:
case ACTION_WAIT:
wait(i_this);
break;
case 1:
case ACTION_WALK:
walk(i_this);
break;
case 2:
case ACTION_BALL:
ball(i_this);
var_r29 = 1;
break;
case 3:
case ACTION_STICK:
stick(i_this);
on_cyl_co = false;
update_pos = false;
@ -252,7 +267,7 @@ static void action(b_gos_class* i_this) {
}
if (boss->field_0x692 == 1) {
i_this->mAction = 0;
i_this->mAction = ACTION_WAIT;
i_this->mMode = 0;
i_this->speedF = cM_rndF(10);
i_this->speed.y = cM_rndF(10);
@ -262,7 +277,7 @@ static void action(b_gos_class* i_this) {
cLib_addCalc0(&i_this->field_0x69c, 1.0f, 2.5f);
if (boss->field_0x692 == 2) {
i_this->mAction = 2;
i_this->mAction = ACTION_BALL;
i_this->mMode = 0;
i_this->speedF = 0.0f;
}
@ -383,7 +398,7 @@ static int daB_GOS_Create(fopAc_ac_c* i_this) {
a_this->mAtInfo.mpSound = &a_this->mSound;
a_this->gravity = -7.0f;
a_this->mAction = 0;
a_this->mAction = ACTION_WAIT;
static dCcD_SrcCyl cc_cyl_src = {
{

View File

@ -10,8 +10,163 @@
#include "m_Do/m_Do_graphic.h"
UNK_REL_DATA;
#include "f_op/f_op_actor_enemy.h"
enum B_MGN_RES_FILE_ID {
/* BCK */
/* 0x06 */ BCK_MGN_APPROACH = 6,
/* 0x07 */ BCK_MGN_BACKJUMP,
/* 0x08 */ BCK_MGN_BLOW,
/* 0x09 */ BCK_MGN_DASH,
/* 0x0A */ BCK_MGN_DASH_JUMP,
/* 0x0B */ BCK_MGN_DOWNL,
/* 0x0C */ BCK_MGN_DOWNL_DAMAGE,
/* 0x0D */ BCK_MGN_DOWNL_LOOP,
/* 0x0E */ BCK_MGN_DOWNL_UP,
/* 0x0F */ BCK_MGN_DOWNL_UPA,
/* 0x10 */ BCK_MGN_DOWNL_UPB,
/* 0x11 */ BCK_MGN_DOWNL_WAIT,
/* 0x12 */ BCK_MGN_DOWNR,
/* 0x13 */ BCK_MGN_DOWNR_DAMAGE,
/* 0x14 */ BCK_MGN_DOWNR_LOOP,
/* 0x15 */ BCK_MGN_DOWNR_UPA,
/* 0x16 */ BCK_MGN_DOWNR_UPB,
/* 0x17 */ BCK_MGN_DOWNR_WAIT,
/* 0x18 */ BCK_MGN_DROP,
/* 0x19 */ BCK_MGN_DROP_POSE,
/* 0x1A */ BCK_MGN_END_DEMO,
/* 0x1B */ BCK_MGN_MDCATCHED,
/* 0x1C */ BCK_MGN_MDCATCHST,
/* 0x1D */ BCK_MGN_MDTHROWLED,
/* 0x1E */ BCK_MGN_MDTHROWLST,
/* 0x1F */ BCK_MGN_MDTHROWRED,
/* 0x20 */ BCK_MGN_MDTHROWRST,
/* 0x21 */ BCK_MGN_OP,
/* 0x22 */ BCK_MGN_SIDESLIPL,
/* 0x23 */ BCK_MGN_SIDESLIPR,
/* 0x24 */ BCK_MGN_STEP,
/* 0x25 */ BCK_MGN_WAIT,
/* 0x26 */ BCK_MGN_WAIT2,
/* 0x27 */ BCK_WL_MGNCATCHED,
/* 0x28 */ BCK_WL_MGNCATCHST,
/* 0x29 */ BCK_WL_MGNTHROWLED,
/* 0x2A */ BCK_WL_MGNTHROWLST,
/* 0x2B */ BCK_WL_MGNTHROWRED,
/* 0x2C */ BCK_WL_MGNTHROWRST,
/* BMDR */
/* 0x2F */ BMDR_MGN = 0x2F,
/* 0X30 */ BMDR_MGN_TAIEKI,
/* BRK */
/* 0x33 */ BRK_MGN_CORE = 0x33,
/* 0x34 */ BRK_MGN_CORE_BEAT,
/* 0x35 */ BRK_MGN_END_DEMO,
/* 0x36 */ BRK_MGN_OP_DEMO,
/* BTK */
/* 0x39 */ BTK_MGN_DASH_JUMP = 0x39,
/* 0x3A */ BTK_MGN_DROP,
/* 0x3B */ BTK_MGN_END_DEMO,
/* 0x3C */ BTK_MGN_ENTER,
/* 0x3D */ BTK_MGN_EXIT,
};
enum B_MGNE_RES_FILE_ID {
/* BCK */
/* 0x06 */ BCK_EF_GDGATE_START = 6,
/* BMDR */
/* 0x09 */ BMDR_EF_GDGATE = 9,
/* BRK */
/* 0x0C */ BRK_EF_GDGATE_APPEAR = 12,
/* 0x0D */ BRK_EF_GDGATE_START,
/* BTK */
/* 0x10 */ BTK_EF_GDGATE = 16,
};
enum Joint {
/* 0x00 */ JNT_WORLD_ROOT,
/* 0x01 */ JNT_BACKBONE1,
/* 0x02 */ JNT_BACKBONE2,
/* 0x03 */ JNT_HAIRA1,
/* 0x04 */ JNT_HAIRA2,
/* 0x05 */ JNT_HAIRBL1,
/* 0x06 */ JNT_HAIRBL2,
/* 0x07 */ JNT_HAIRBR1,
/* 0x08 */ JNT_HAIRBR2,
/* 0x09 */ JNT_HAIRCL1,
/* 0x0A */ JNT_HAIRCL2,
/* 0x0B */ JNT_HAIRCR1,
/* 0x0C */ JNT_HAIRCR2,
/* 0x0D */ JNT_HAIRDL1,
/* 0x0E */ JNT_HAIRDL2,
/* 0x0F */ JNT_HAIRDL3,
/* 0x10 */ JNT_HAIRDR1,
/* 0x11 */ JNT_HAIRDR2,
/* 0x12 */ JNT_HAIRDR3,
/* 0x13 */ JNT_HAIREL1,
/* 0x14 */ JNT_HAIREL2,
/* 0x15 */ JNT_HAIREL3,
/* 0x16 */ JNT_HAIRER1,
/* 0x17 */ JNT_HAIRER2,
/* 0x18 */ JNT_HAIRER3,
/* 0x19 */ JNT_NECK,
/* 0x1A */ JNT_BEARD,
/* 0x1B */ JNT_HEAD,
/* 0x1C */ JNT_CHIN,
/* 0x1D */ JNT_TANGE,
/* 0x1E */ JNT_EARL,
/* 0x1F */ JNT_EARR,
/* 0x20 */ JNT_NOSE,
/* 0x21 */ JNT_SHOULDEL,
/* 0x22 */ JNT_ARML1,
/* 0x23 */ JNT_ARML2,
/* 0x24 */ JNT_FURL,
/* 0x25 */ JNT_HANDL,
/* 0x26 */ JNT_FINGAL1,
/* 0x27 */ JNT_FINGAL2,
/* 0x28 */ JNT_FINGBL1,
/* 0x29 */ JNT_FINGBL2,
/* 0x2A */ JNT_FINGCL1,
/* 0x2B */ JNT_FINGCL2,
/* 0x2C */ JNT_FINGDL1,
/* 0x2D */ JNT_FINGDL2,
/* 0x2E */ JNT_FINGEL1,
/* 0x2F */ JNT_FINGEL2,
/* 0x30 */ JNT_SHOULDER,
/* 0x31 */ JNT_ARMR1,
/* 0x32 */ JNT_ARMR2,
/* 0x33 */ JNT_FURR,
/* 0x34 */ JNT_HANDR,
/* 0x35 */ JNT_FINGAR1,
/* 0x36 */ JNT_FINGAR2,
/* 0x37 */ JNT_FINGBR1,
/* 0x38 */ JNT_FINGBR2,
/* 0x39 */ JNT_FINGCR1,
/* 0x3A */ JNT_FINGCR2,
/* 0x3B */ JNT_FINGDR1,
/* 0x3C */ JNT_FINGDR2,
/* 0x3D */ JNT_FINGER1,
/* 0x3E */ JNT_FINGER2,
/* 0x3F */ JNT_WAIST,
/* 0x40 */ JNT_LEGL1,
/* 0x41 */ JNT_LEGL2,
/* 0x42 */ JNT_LEGL3,
/* 0x43 */ JNT_FOOTL,
/* 0x44 */ JNT_LEGR1,
/* 0x45 */ JNT_LEGR2,
/* 0x46 */ JNT_LEGR3,
/* 0x47 */ JNT_FOOTR,
/* 0x48 */ JNT_TAIL1,
/* 0x49 */ JNT_TAIL2,
/* 0x4A */ JNT_TAIL3,
/* 0x4B */ JNT_TAIL4,
};
namespace {
/* 806100CC-8061010C 000038 0040+00 0/1 0/0 0/0 .data cc_sph_src__23@unnamed@d_a_b_mgn_cpp@ */
static dCcD_SrcSph cc_sph_src = {
@ -75,9 +230,9 @@ int daB_MGN_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
int jntNo = i_joint->getJntNo();
mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo));
if (jntNo == 1) {
if (jntNo == JNT_BACKBONE1) {
mDoMtx_stack_c::YrotM(shape_angle.y - field_0xb16);
} else if (jntNo == 25) {
} else if (jntNo == JNT_NECK) {
mDoMtx_stack_c::YrotM(field_0xb16 - field_0xb14);
}
@ -201,25 +356,25 @@ void daB_MGN_c::setDashSmokeEffect() {
int var_r28 = 0;
int var_r27;
if (checkBck(21) || checkBck(15)) {
if (checkBck(BCK_MGN_DOWNR_UPA) || checkBck(BCK_MGN_DOWNL_UPA)) {
var_r28 = 4;
}
if (mpMgnModelMorf->checkFrame(foot_rand_frame[var_r28])) {
jnt_no = 0x34;
jnt_no = JNT_HANDR;
dComIfGp_getVibration().StartShock(2, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
mSound.startCreatureSound(Z2SE_EN_MGN_FOOTNOTE, 0, -1);
var_r27 = 0;
} else if (mpMgnModelMorf->checkFrame(foot_rand_frame[var_r28 + 1])) {
jnt_no = 0x25;
jnt_no = JNT_HANDL;
dComIfGp_getVibration().StartShock(2, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
mSound.startCreatureSound(Z2SE_EN_MGN_FOOTNOTE, 0, -1);
var_r27 = 1;
} else if (mpMgnModelMorf->checkFrame(foot_rand_frame[var_r28 + 2])) {
jnt_no = 0x47;
jnt_no = JNT_FOOTR;
var_r27 = 2;
} else if (mpMgnModelMorf->checkFrame(foot_rand_frame[var_r28 + 3])) {
jnt_no = 0x43;
jnt_no = JNT_FOOTL;
var_r27 = 3;
}
@ -246,22 +401,22 @@ void daB_MGN_c::setBackJumpEffect() {
int var_r27;
if (mpMgnModelMorf->checkFrame(40.0f)) {
jnt_no = 0x34;
jnt_no = JNT_HANDR;
dComIfGp_getVibration().StartShock(2, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
mSound.startCreatureSound(Z2SE_EN_MGN_FOOTNOTE, 0, -1);
var_r27 = 0;
} else if (mpMgnModelMorf->checkFrame(37.0f)) {
jnt_no = 0x25;
jnt_no = JNT_HANDL;
dComIfGp_getVibration().StartShock(2, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
mSound.startCreatureSound(Z2SE_EN_MGN_FOOTNOTE, 0, -1);
var_r27 = 1;
} else if (mpMgnModelMorf->checkFrame(35.0f)) {
jnt_no = 0x47;
jnt_no = JNT_FOOTR;
dComIfGp_getVibration().StartShock(2, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
mSound.startCreatureSound(Z2SE_EN_MGN_FOOTNOTE, 0, -1);
var_r27 = 2;
} else if (mpMgnModelMorf->checkFrame(36.0f)) {
jnt_no = 0x43;
jnt_no = JNT_FOOTL;
var_r27 = 3;
}
@ -282,15 +437,14 @@ void daB_MGN_c::setBackJumpEffect() {
}
}
/* 806062C0-80606424 000C80 0164+00 1/1 0/0 0/0 .text setSlideSmokeEffect__9daB_MGN_cFv
*/
/* 806062C0-80606424 000C80 0164+00 1/1 0/0 0/0 .text setSlideSmokeEffect__9daB_MGN_cFv */
void daB_MGN_c::setSlideSmokeEffect() {
dBgS_GndChk gndchk;
cXyz effpos;
mSound.startCreatureSoundLevel(Z2SE_EN_MGN_SLIP, 0, -1);
for (int i = 0; i < 4; i++) {
static int foot_jnt[4] = {0x34, 0x25, 0x47, 0x43};
static int foot_jnt[4] = {JNT_HANDR, JNT_HANDL, JNT_FOOTR, JNT_FOOTL};
mDoMtx_stack_c::copy(mpMgnModelMorf->getModel()->getAnmMtx(foot_jnt[i]));
mDoMtx_stack_c::multVecZero(&effpos);
@ -366,7 +520,7 @@ void daB_MGN_c::setStepEffect() {
for (int i = 0; i < 2; i++) {
J3DModel* model = mpMgnModelMorf->getModel();
static int foot_jnt[2] = {0x34, 0x25};
static int foot_jnt[2] = {JNT_HANDR, JNT_HANDL};
mDoMtx_stack_c::copy(mpMgnModelMorf->getModel()->getAnmMtx(foot_jnt[i]));
mDoMtx_stack_c::multVecZero(&effpos);
effpos.y += 100.0f;
@ -381,8 +535,7 @@ void daB_MGN_c::setStepEffect() {
}
}
/* 8060688C-80606A10 00124C 0184+00 2/2 0/0 0/0 .text setFallAttackEffect__9daB_MGN_cFv
*/
/* 8060688C-80606A10 00124C 0184+00 2/2 0/0 0/0 .text setFallAttackEffect__9daB_MGN_cFv */
void daB_MGN_c::setFallAttackEffect() {
dBgS_GndChk gndchk;
cXyz effpos;
@ -543,8 +696,7 @@ void daB_MGN_c::calcHideSmokeEffect() {
}
}
/* 806071C4-8060729C 001B84 00D8+00 1/1 0/0 0/0 .text drawHideSmokeEffect__9daB_MGN_cFv
*/
/* 806071C4-8060729C 001B84 00D8+00 1/1 0/0 0/0 .text drawHideSmokeEffect__9daB_MGN_cFv */
void daB_MGN_c::drawHideSmokeEffect() {
J3DModel* model = mpMgnModelMorf->getModel();
J3DModelData* modelData;
@ -1040,10 +1192,10 @@ void daB_MGN_c::executeCircle() {
mMoveMode = 1;
}
case 0:
if (checkBck(6)) {
setBck(9, 2, 0.0f, l_HIO.dash_anim);
} else if (!checkBck(0x13) && !checkBck(12)) {
setBck(9, 2, 3.0f, l_HIO.dash_anim);
if (checkBck(BCK_MGN_APPROACH)) {
setBck(BCK_MGN_DASH, 2, 0.0f, l_HIO.dash_anim);
} else if (!checkBck(BCK_MGN_DOWNR_DAMAGE) && !checkBck(BCK_MGN_DOWNL_DAMAGE)) {
setBck(BCK_MGN_DASH, 2, 3.0f, l_HIO.dash_anim);
}
field_0xa90 = var_r27;
@ -1067,8 +1219,8 @@ void daB_MGN_c::executeCircle() {
setDashSmokeEffect();
setBloodEffect();
case 4:
if (mpMgnModelMorf->isStop() && (checkBck(0x13) || checkBck(12))) {
setBck(9, 2, 3.0f, 1.0f);
if (mpMgnModelMorf->isStop() && (checkBck(BCK_MGN_DOWNR_DAMAGE) || checkBck(BCK_MGN_DOWNL_DAMAGE))) {
setBck(BCK_MGN_DASH, 2, 3.0f, 1.0f);
}
if (abs((s16)(field_0xa90 - var_r27)) < 0x800) {
@ -1092,9 +1244,9 @@ void daB_MGN_c::executeCircle() {
mAtSph.OffAtSetBit();
if (field_0xa92 > 0) {
setBck(0x23, 2, 3.0f, 1.0f);
setBck(BCK_MGN_SIDESLIPR, 2, 3.0f, 1.0f);
} else {
setBck(0x22, 2, 3.0f, 1.0f);
setBck(BCK_MGN_SIDESLIPL, 2, 3.0f, 1.0f);
}
}
} else if (mMoveMode == 3) {
@ -1138,7 +1290,7 @@ void daB_MGN_c::executeCircle() {
cLib_chaseF(&speedF, 0.0f, 1.5f);
if (!speedF) {
setBck(0x25, 2, 30.0f, 1.0f);
setBck(BCK_MGN_WAIT, 2, 30.0f, 1.0f);
field_0xa9c = 30;
mMoveMode = 6;
}
@ -1195,7 +1347,7 @@ void daB_MGN_c::executeDash() {
attention_info.flags = 0;
mMoveMode = 12;
field_0xa9c = 20;
setBck(0x25, 2, 3.0f, 1.0f);
setBck(BCK_MGN_WAIT, 2, 3.0f, 1.0f);
} else {
speedF = 0.0f;
if (((cM_rnd() < 0.3f && mGdgateNum >= 3) || mGdgateNum >= 10) &&
@ -1206,7 +1358,7 @@ void daB_MGN_c::executeDash() {
attention_info.flags = 0;
mMoveMode = 12;
field_0xa9c = 60;
setBck(0x25, 2, 3.0f, 1.0f);
setBck(BCK_MGN_WAIT, 2, 3.0f, 1.0f);
shape_angle.y = fopAcM_searchPlayerAngleY(this);
current.angle.y = shape_angle.y;
@ -1275,7 +1427,7 @@ void daB_MGN_c::executeDash() {
break;
case 0:
mSound.startCreatureVoice(Z2SE_EN_MGN_V_GROWL, -1);
setBck(6, 0, 3.0f, 1.0f);
setBck(BCK_MGN_APPROACH, 0, 3.0f, 1.0f);
mMoveMode = 1;
mJewelColorMode = 2;
case 1:
@ -1295,10 +1447,10 @@ void daB_MGN_c::executeDash() {
gravity = -5.0f;
}
if (checkBck(6)) {
setBck(9, 2, 0.0f, l_HIO.dash_anim);
if (checkBck(BCK_MGN_APPROACH)) {
setBck(BCK_MGN_DASH, 2, 0.0f, l_HIO.dash_anim);
} else {
setBck(9, 2, 3.0f, l_HIO.dash_anim);
setBck(BCK_MGN_DASH, 2, 3.0f, l_HIO.dash_anim);
}
mMoveMode = 3;
@ -1438,7 +1590,7 @@ void daB_MGN_c::executeDash() {
}
break;
case 5:
setBck(9, 2, 3.0f, l_HIO.dash_anim);
setBck(BCK_MGN_DASH, 2, 3.0f, l_HIO.dash_anim);
mMoveMode = 6;
field_0x20f4[0].OnTgSetBit();
mAtSph.OnAtSetBit();
@ -1497,7 +1649,7 @@ void daB_MGN_c::executeThrown() {
dComIfGs_onOneZoneSwitch(2, fopAcM_GetRoomNo(this));
}
setBck(0x1c, 0, 3.0f, 1.0f);
setBck(BCK_MGN_MDCATCHST, 0, 3.0f, 1.0f);
speedF = 0.0f;
mMoveMode = 2;
@ -1521,7 +1673,7 @@ void daB_MGN_c::executeThrown() {
cLib_chasePos(&current.pos, sp4C, 100.0f);
if (mpMgnModelMorf->isStop()) {
setBck(0x1b, 2, 3.0f, 1.0f);
setBck(BCK_MGN_MDCATCHED, 2, 3.0f, 1.0f);
mMoveMode = 3;
field_0xa9c = 30;
}
@ -1542,7 +1694,7 @@ void daB_MGN_c::executeThrown() {
dComIfGp_getVibration().StopQuake(0x1f);
offThrowMode(0x10);
setBck(0x20, 0, 3.0f, 1.0f);
setBck(BCK_MGN_MDTHROWRST, 0, 3.0f, 1.0f);
field_0xafc = 1;
mMoveMode = 5;
@ -1551,7 +1703,7 @@ void daB_MGN_c::executeThrown() {
dComIfGp_getVibration().StopQuake(0x1f);
offThrowMode(8);
setBck(0x1e, 0, 3.0f, 1.0f);
setBck(BCK_MGN_MDTHROWLST, 0, 3.0f, 1.0f);
field_0xafc = 0;
mMoveMode = 5;
@ -1564,7 +1716,7 @@ void daB_MGN_c::executeThrown() {
offThrowMode(4);
mSound.startCreatureVoice(Z2SE_EN_MGN_V_MIDNA_RELEASE, -1);
setBck(8, 0, 3.0f, 1.0f);
setBck(BCK_MGN_BLOW, 0, 3.0f, 1.0f);
mMoveMode = 10;
speedF = 0.0f;
}
@ -1579,14 +1731,14 @@ void daB_MGN_c::executeThrown() {
gravity = -5.0f;
if (field_0xafc == 0) {
setBck(0x1d, 0, 3.0f, 1.0f);
setBck(BCK_MGN_MDTHROWLED, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + -0x2800;
field_0xa90 = shape_angle.y + -0x1000;
field_0xa92 = 0x200;
} else {
setBck(0x1f, 0, 3.0f, 1.0f);
setBck(BCK_MGN_MDTHROWRED, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x2800;
@ -1632,9 +1784,9 @@ void daB_MGN_c::executeThrown() {
dComIfGp_getVibration().StartQuake(3, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
if (field_0xafc == 0) {
setBck(20, 2, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_LOOP, 2, 3.0f, 1.0f);
} else {
setBck(13, 2, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_LOOP, 2, 3.0f, 1.0f);
}
dComIfGs_offOneZoneSwitch(11, fopAcM_GetRoomNo(this));
@ -1703,10 +1855,10 @@ void daB_MGN_c::setDownEnd() {
attention_info.flags = 0;
if (field_0xafc == 0) {
setBck(0x16, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_UPB, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + -0x4000;
} else {
setBck(0x10, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_UPB, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x4000;
}
@ -1725,9 +1877,9 @@ void daB_MGN_c::executeDown() {
field_0xafc = mMoveMode;
if (field_0xafc == 0) {
setBck(0x12, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR, 0, 3.0f, 1.0f);
} else {
setBck(11, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL, 0, 3.0f, 1.0f);
}
field_0xb01 = 1;
@ -1754,9 +1906,9 @@ void daB_MGN_c::executeDown() {
dComIfGp_getVibration().StartQuake(3, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
if (field_0xafc == 0) {
setBck(20, 2, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_LOOP, 2, 3.0f, 1.0f);
} else {
setBck(13, 2, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_LOOP, 2, 3.0f, 1.0f);
}
mMoveMode = 3;
@ -1803,9 +1955,9 @@ void daB_MGN_c::executeDown() {
break;
case 5:
if (field_0xafc == 0) {
setBck(0x17, 2, 10.0f, 1.0f);
setBck(BCK_MGN_DOWNR_WAIT, 2, 10.0f, 1.0f);
} else {
setBck(0x11, 2, 10.0f, 1.0f);
setBck(BCK_MGN_DOWNL_WAIT, 2, 10.0f, 1.0f);
}
mMoveMode = 6;
case 6:
@ -1829,7 +1981,7 @@ void daB_MGN_c::executeDown() {
if (mpMgnModelMorf->isStop()) {
mSound.startCreatureVoice(Z2SE_EN_MGN_V_GROWL, -1);
setBck(6, 0, 3.0f, 1.0f);
setBck(BCK_MGN_APPROACH, 0, 3.0f, 1.0f);
mMoveMode = 8;
}
break;
@ -1876,10 +2028,10 @@ void daB_MGN_c::executeDownDamage() {
field_0xb07 = 0;
if (field_0xafc == 0) {
setBck(21, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_UPA, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + -0x4000;
} else {
setBck(15, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_UPA, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x4000;
}
@ -1902,9 +2054,9 @@ void daB_MGN_c::executeDownDamage() {
}
} else {
if (field_0xafc == 0) {
setBck(19, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_DAMAGE, 0, 3.0f, 1.0f);
} else {
setBck(12, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_DAMAGE, 0, 3.0f, 1.0f);
}
mMoveMode = 1;
@ -1977,9 +2129,9 @@ void daB_MGN_c::executeDownBiteDamage() {
mSound.startCollisionSE(Z2SE_HIT_WOLFBITE, 0x1f);
if (field_0xafc == 0) {
setBck(19, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_DAMAGE, 0, 3.0f, 1.0f);
} else {
setBck(12, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_DAMAGE, 0, 3.0f, 1.0f);
}
mMoveMode = 1;
@ -2009,10 +2161,10 @@ void daB_MGN_c::executeDownBiteDamage() {
onBodyCo();
if (field_0xafc == 0) {
setBck(21, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_UPA, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + -0x4000;
} else {
setBck(15, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_UPA, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x4000;
}
@ -2033,9 +2185,9 @@ void daB_MGN_c::executeDownBiteDamage() {
}
} else {
if (field_0xafc == 0) {
setBck(19, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNR_DAMAGE, 0, 3.0f, 1.0f);
} else {
setBck(12, 0, 3.0f, 1.0f);
setBck(BCK_MGN_DOWNL_DAMAGE, 0, 3.0f, 1.0f);
}
mSound.startCollisionSE(Z2SE_HIT_WOLFBITE, 0x1e);
@ -2135,7 +2287,7 @@ void daB_MGN_c::executeFall() {
mMoveMode = 1;
field_0xa9c = 60;
setBck(0x19, 2, 3.0f, 1.0f);
setBck(BCK_MGN_DROP_POSE, 2, 3.0f, 1.0f);
mpMgnBtk->init(mpMgnModelMorf->getModel()->getModelData(),
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_mgn", 0x3a), 1, 0, 0.0f, 0,
@ -2163,7 +2315,7 @@ void daB_MGN_c::executeFall() {
break;
case 4:
if (current.pos.y < 1000.0f) {
setBck(0x18, 0, 10.0f, 0.0f);
setBck(BCK_MGN_DROP, 0, 10.0f, 0.0f);
mMoveMode = 5;
}
case 5:
@ -2201,7 +2353,7 @@ void daB_MGN_c::executeFall() {
if (mpMgnModelMorf->isStop()) {
mMoveMode = 10;
mSound.startCreatureVoice(Z2SE_EN_MGN_V_GROWL, -1);
setBck(7, 0, 3.0f, 1.0f);
setBck(BCK_MGN_BACKJUMP, 0, 3.0f, 1.0f);
}
break;
case 7:
@ -2212,7 +2364,7 @@ void daB_MGN_c::executeFall() {
if (mpMgnModelMorf->isStop()) {
mMoveMode = 8;
mSound.startCreatureVoice(Z2SE_EN_MGN_V_TURN, -1);
setBck(0x24, 0, 3.0f, 1.0f);
setBck(BCK_MGN_STEP, 0, 3.0f, 1.0f);
}
break;
case 8:
@ -2241,7 +2393,7 @@ void daB_MGN_c::executeFall() {
if (mpMgnModelMorf->isStop()) {
mMoveMode = 10;
mSound.startCreatureVoice(Z2SE_EN_MGN_V_GROWL, -1);
setBck(7, 0, 3.0f, 1.0f);
setBck(BCK_MGN_BACKJUMP, 0, 3.0f, 1.0f);
}
break;
case 10:
@ -2274,7 +2426,7 @@ void daB_MGN_c::executeFall() {
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 0x10, 0x400, 0x80);
if (mpMgnModelMorf->isStop()) {
setBck(0x25, 2, 3.0f, 1.0f);
setBck(BCK_MGN_WAIT, 2, 3.0f, 1.0f);
field_0xa9c = 30;
mMoveMode = 13;
mJewelColorMode = 2;
@ -2384,7 +2536,7 @@ void daB_MGN_c::executeOpening() {
shape_angle.y = current.angle.y = -0x8000;
field_0xb16 = field_0xb14 = shape_angle.y;
setBck(0x21, 0, 3.0f, 1.0f);
setBck(BCK_MGN_OP, 0, 3.0f, 1.0f);
mpMgnCoreBrk->remove(modelData);
@ -2518,7 +2670,7 @@ void daB_MGN_c::executeOpening() {
if (mpMgnModelMorf->isStop()) {
mSound.startCreatureVoice(Z2SE_EN_MGN_V_GROWL, -1);
setBck(7, 0, 3.0f, 1.0f);
setBck(BCK_MGN_BACKJUMP, 0, 3.0f, 1.0f);
mMoveMode = 5;
}
@ -2571,7 +2723,7 @@ void daB_MGN_c::executeOpening() {
cLib_addCalcPos2(&mDemoCamCenter, spAC, 0.5f, 200.0f);
if (mpMgnModelMorf->isStop()) {
setBck(0x25, 2, 3.0f, 1.0f);
setBck(BCK_MGN_WAIT, 2, 3.0f, 1.0f);
field_0xa9c = 30;
mMoveMode = 8;
}
@ -2583,7 +2735,7 @@ void daB_MGN_c::executeOpening() {
cLib_addCalcPos2(&mDemoCamCenter, spAC, 0.5f, 200.0f);
if (field_0xa9c == 0) {
setBck(0x26, 0, 3.0f, 1.0f);
setBck(BCK_MGN_WAIT2, 0, 3.0f, 1.0f);
mMoveMode = 10;
field_0xad8 = 0.0f;
}
@ -2599,7 +2751,7 @@ void daB_MGN_c::executeOpening() {
cLib_addCalcPos2(&mDemoCamEye, spAC, 0.1f, field_0xad8);
if (mpMgnModelMorf->isStop()) {
setBck(0x25, 2, 3.0f, 1.0f);
setBck(BCK_MGN_WAIT, 2, 3.0f, 1.0f);
field_0xa9c = 30;
mMoveMode = 11;
}
@ -2659,7 +2811,7 @@ void daB_MGN_c::executeDeath() {
mKankyoColMode = 2;
mKankyoBlend = 0.0f;
setBck(0x1a, 0, 3.0f, 1.0f);
setBck(BCK_MGN_END_DEMO, 0, 3.0f, 1.0f);
J3DModelData* model = mpMgnModelMorf->getModel()->getModelData();
mpMgnCoreBrk->remove(model);
@ -2805,7 +2957,7 @@ void daB_MGN_c::executeJump() {
mAtSph.OffAtSetBit();
field_0x20f4[0].OffTgSetBit();
setBck(10, 0, 5.0f, 1.0f);
setBck(BCK_MGN_DASH_JUMP, 0, 5.0f, 1.0f);
mpMgnBtk->init(mpMgnModelMorf->getModel()->getModelData(),
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_mgn", 0x39), 1, 0, 1.1f, 0,
@ -3178,10 +3330,10 @@ static int daB_MGN_Delete(daB_MGN_c* i_this) {
/* 8060EAE0-8060F068 0094A0 0588+00 1/1 0/0 0/0 .text CreateHeap__9daB_MGN_cFv */
int daB_MGN_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("B_mgn", 0x2f);
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("B_mgn", BMDR_MGN);
JUT_ASSERT(4010, modelData != 0);
mpMgnModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes("B_mgn", 0x25), 2,
(J3DAnmTransform*)dComIfG_getObjectRes("B_mgn", BCK_MGN_WAIT), 2,
1.0f, 0, -1, &mSound, 0x80000, 0x11000284);
if (mpMgnModelMorf == NULL || mpMgnModelMorf->getModel() == NULL) {
return 0;
@ -3201,7 +3353,7 @@ int daB_MGN_c::CreateHeap() {
return 0;
}
if (!mpMgnCoreBrk->init(modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_mgn", 0x33),
if (!mpMgnCoreBrk->init(modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_mgn", BRK_MGN_CORE),
1, 2, 0.0f, 0, -1))
{
return 0;
@ -3213,13 +3365,13 @@ int daB_MGN_c::CreateHeap() {
}
if (!mpMgnBtk->init(mpMgnModelMorf->getModel()->getModelData(),
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_mgn", 0x3d), 1, 0,
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_mgn", BTK_MGN_EXIT), 1, 0,
0.0f, 0, -1))
{
return 0;
}
modelData = (J3DModelData*)dComIfG_getObjectRes("B_mgn", 0x30);
modelData = (J3DModelData*)dComIfG_getObjectRes("B_mgn", BMDR_MGN_TAIEKI);
JUT_ASSERT(4068, modelData != 0);
for (int i = 0; i < 20; i++) {
@ -3229,12 +3381,12 @@ int daB_MGN_c::CreateHeap() {
}
}
modelData = (J3DModelData*)dComIfG_getObjectRes("B_mgne", 9);
modelData = (J3DModelData*)dComIfG_getObjectRes("B_mgne", BMDR_EF_GDGATE);
JUT_ASSERT(4084, modelData != 0);
for (int i = 0; i < 4; i++) {
mpGdgateModelMorf[i] = new mDoExt_McaMorfSO(modelData, NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes("B_mgne", 6),
(J3DAnmTransform*)dComIfG_getObjectRes("B_mgne", BCK_EF_GDGATE_START),
0, 0.0f, 0, -1, &mSound, 0x80000, 0x11000284);
if (mpGdgateModelMorf[i] == NULL || mpGdgateModelMorf[i]->getModel() == NULL) {
return 0;
@ -3246,7 +3398,7 @@ int daB_MGN_c::CreateHeap() {
}
if (!mpGdgateStartBrk[i]->init(modelData,
(J3DAnmTevRegKey*)dComIfG_getObjectRes("B_mgne", 13), 1, 0,
(J3DAnmTevRegKey*)dComIfG_getObjectRes("B_mgne", BRK_EF_GDGATE_START), 1, 0,
1.0f, 0, -1))
{
return 0;
@ -3258,7 +3410,7 @@ int daB_MGN_c::CreateHeap() {
}
if (!mpGdgateAppearBrk[i]->init(modelData,
(J3DAnmTevRegKey*)dComIfG_getObjectRes("B_mgne", 12), 1, 0,
(J3DAnmTevRegKey*)dComIfG_getObjectRes("B_mgne", BRK_EF_GDGATE_APPEAR), 1, 0,
1.0f, 0, -1))
{
return 0;
@ -3270,7 +3422,7 @@ int daB_MGN_c::CreateHeap() {
}
if (!mpGdgateBtk[i]->init(mpMgnModelMorf->getModel()->getModelData(),
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_mgne", 16),
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_mgne", BTK_EF_GDGATE),
1, 2, 1.0f, 0, -1))
{
return 0;

View File

@ -11,312 +11,15 @@
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
#include "dol2asm.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
#include "d/actor/d_a_b_oh.h"
#include "d/actor/d_a_obj_lv3WaterB.h"
#include "d/actor/d_a_obj_ystone.h"
#include "Z2AudioLib/Z2Instances.h"
//
// Types:
//
//
// Forward References:
//
extern "C" void __ct__12daB_OB_HIO_cFv();
extern "C" static void anm_init__FP10b_ob_classifUcf();
extern "C" static void HeadCallBack__FP8J3DJointi();
extern "C" static void TailCallBack__FP8J3DJointi();
extern "C" static void FinACallBack__FP8J3DJointi();
extern "C" static void FinBCallBack__FP8J3DJointi();
extern "C" static void FinCCallBack__FP8J3DJointi();
extern "C" static void sui_nodeCallBack__FP8J3DJointi();
extern "C" static void dark__FP12J3DModelDatas();
extern "C" static void daB_OB_Draw__FP10b_ob_class();
extern "C" void __dt__4cXyzFv();
extern "C" static void core_start__FP10b_ob_class();
extern "C" static void core_hand_move__FP10b_ob_class();
extern "C" static void s_bf_sub__FPvPv();
extern "C" static void s_bfdel_sub__FPvPv();
extern "C" static void s_kaisoudel_sub__FPvPv();
extern "C" static void bombfishset__FP10b_ob_class();
extern "C" void __dt__5csXyzFv();
extern "C" static void core_hook__FP10b_ob_class();
extern "C" static void core_chance__FP10b_ob_class();
extern "C" static void core_end__FP10b_ob_class();
extern "C" static void core_action__FP10b_ob_class();
extern "C" static void core_damage_check__FP10b_ob_class();
extern "C" static void fish_damage_check__FP10b_ob_class();
extern "C" static void pl_check__FP10b_ob_classfs();
extern "C" static void fish_normal__FP10b_ob_class();
extern "C" static void fish_vacume__FP10b_ob_class();
extern "C" static void fish_end__FP10b_ob_class();
extern "C" static void dmcalc__FP10b_ob_class();
extern "C" static void fish_move__FP10b_ob_class();
extern "C" static void cam_3d_morf__FP10b_ob_classf();
extern "C" static void s_hasidel_sub__FPvPv();
extern "C" static void demo_camera__FP10b_ob_class();
extern "C" static void dComIfGp_particle_getEmitter__FUl();
extern "C" static void dComIfGp_particle_set__FUlUsPC4cXyzPC5csXyzPC4cXyz();
extern "C" void checkSkipEdge__14dEvt_control_cFv();
extern "C" static void cM_scos__Fs();
extern "C" static void JMAFastSqrt__Ff();
extern "C" static void cM_ssin__Fs();
extern "C" static void daB_OB_Execute__FP10b_ob_class();
extern "C" static bool daB_OB_IsDelete__FP10b_ob_class();
extern "C" static void daB_OB_Delete__FP10b_ob_class();
extern "C" static void useHeapInit__FP10fopAc_ac_c();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" static void daB_OB_Create__FP10fopAc_ac_c();
extern "C" void __ct__10b_ob_classFv();
extern "C" void __dt__7ob_ke_sFv();
extern "C" void __ct__7ob_ke_sFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void __dt__12dBgS_AcchCirFv();
extern "C" void __dt__8cM3dGSphFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void __ct__5csXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" void __dt__9ob_part_sFv();
extern "C" void __ct__9ob_part_sFv();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" void __dt__12daB_OB_HIO_cFv();
extern "C" void __sinit_d_a_b_ob_cpp();
extern "C" static void func_8061A88C();
extern "C" static void func_8061A894();
extern "C" void cancelOriginalDemo__9daPy_py_cFv();
extern "C" static void dComIfGp_event_reset__Fv();
extern "C" static void dComIfGs_onStageBossEnemy__Fv();
extern "C" void multVecZero__14mDoMtx_stack_cFP3Vec();
extern "C" void getAnmMtx__8J3DModelFi();
extern "C" void __apl__4cXyzFRC3Vec();
extern "C" void __as__5csXyzFRC5csXyz();
extern "C" void __as__4cXyzFRC4cXyz();
extern "C" void changeDemoMode__9daPy_py_cFUliis();
extern "C" void changeOriginalDemo__9daPy_py_cFv();
extern "C" static void daPy_getPlayerActorClass__Fv();
extern "C" void onCondition__11dEvt_info_cFUs();
extern "C" void checkCommandDemoAccrpt__11dEvt_info_cFv();
extern "C" static void dComIfGp_getCamera__Fi();
extern "C" static void dComIfGp_getPlayerCameraID__Fi();
extern "C" static void dComIfGp_getPlayer__Fi();
extern "C" void setCurrentPos__16obj_ystone_classF4cXyz();
extern "C" void __ct__4cXyzFRC4cXyz();
extern "C" void becomeDeleteEmitter__14JPABaseEmitterFv();
extern "C" void __ct__5csXyzFRC5csXyz();
extern "C" void fabsf__3stdFf();
extern "C" static void dComIfGp_particle_set__FUsPC4cXyzPC5csXyzPC4cXyz();
extern "C" void setPlaySpeed__13mDoExt_morf_cFf();
extern "C" void startCheckSkipEdge__14dEvt_control_cFPv();
extern "C" static void dComIfGp_getEvent__Fv();
extern "C" static void mDoAud_seStart__FUlPC3VecUlSc();
extern "C" void set__4cXyzFfff();
extern "C" void __ct__10JAISoundIDFUl(JAISoundID* this_, u32 param_0);
extern "C" void abs__4cXyzCFv();
extern "C" void isStop__13mDoExt_morf_cFv();
extern "C" static void dComIfGp_getVibration__Fv();
extern "C" void __ct__4cXyzFfff();
extern "C" extern char const* const d_a_b_ob__stringBase0;
//
// External References:
//
extern "C" void onBlure__13mDoGph_gInf_cFv();
extern "C" void mDoMtx_XrotM__FPA4_fs();
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoMtx_ZrotM__FPA4_fs();
extern "C" void mDoMtx_MtxToRot__FPA4_CfP5csXyz();
extern "C" void push__14mDoMtx_stack_cFv();
extern "C" void pop__14mDoMtx_stack_cFv();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void play__14mDoExt_baseAnmFv();
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void
__ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl();
extern "C" void setAnm__14mDoExt_McaMorfFP15J3DAnmTransformiffffPv();
extern "C" void play__14mDoExt_McaMorfFP3VecUlSc();
extern "C" void entryDL__14mDoExt_McaMorfFv();
extern "C" void modelCalc__14mDoExt_McaMorfFv();
extern "C" void
__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
extern "C" void entryDL__16mDoExt_McaMorfSOFv();
extern "C" void modelCalc__16mDoExt_McaMorfSOFv();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void cDmrNowMidnaTalk__Fv();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc();
extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_searchActorAngleX__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs();
extern "C" void fopAcM_createItemForBoss__FPC4cXyziiPC5csXyzPC4cXyzffi();
extern "C" void fopAcM_createWarpHole__FPC4cXyzPC5csXyziUcUcUc();
extern "C" void fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc();
extern "C" void fopAcM_otherBgCheck__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopMsgM_messageSetDemo__FUl();
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
extern "C" void fpcSch_JudgeForPName__FPvPv();
extern "C" void fpcSch_JudgeByID__FPvPv();
extern "C" void dStage_changeScene__FifUlScsi();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void dComIfGs_onOneZoneSwitch__Fii();
extern "C" void dComIfGs_offOneZoneSwitch__Fii();
extern "C" void dComIfGs_isOneZoneSwitch__Fii();
extern "C" void
dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
extern "C" void onDungeonItem__12dSv_memBit_cFi();
extern "C" void isDungeonItem__12dSv_memBit_cCFi();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void dEv_noFinishSkipProc__FPvi();
extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii();
extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void StartShock__12dVibration_cFii4cXyz();
extern "C" void StartQuake__12dVibration_cFii4cXyz();
extern "C" void StopQuake__12dVibration_cFi();
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 CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Move__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void __dt__12dCcD_GObjInfFv();
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
extern "C" void def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c();
extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo();
extern "C" void Start__9dCamera_cFv();
extern "C" void Stop__9dCamera_cFv();
extern "C" void SetTrimSize__9dCamera_cFl();
extern "C" void Set__9dCamera_cF4cXyz4cXyzsf();
extern "C" void Reset__9dCamera_cF4cXyz4cXyz();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void dKy_custom_colset__FUcUcf();
extern "C" void dKy_BossLight_set__FP4cXyzP8_GXColorfUc();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void __pl__4cXyzCFRC3Vec();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void __ct__5csXyzFsss();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void __dt__8cM3dGCirFv();
extern "C" void SetC__8cM3dGSphFRC4cXyz();
extern "C" void SetR__8cM3dGSphFf();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void cLib_addCalc0__FPfff();
extern "C" void cLib_addCalcAngleS2__FPssss();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void func_802807E0();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void bgmStart__8Z2SeqMgrFUlUll();
extern "C" void bgmStop__8Z2SeqMgrFUll();
extern "C" void subBgmStart__8Z2SeqMgrFUl();
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
extern "C" void changeBgmStatus__8Z2SeqMgrFl();
extern "C" void stopAnime__10Z2CreatureFv();
extern "C" void __ct__15Z2CreatureEnemyFv();
extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc();
extern "C" void __ct__12Z2CreatureOIFv();
extern "C" void
init__12Z2CreatureOIFP3VecP3VecP3VecP3VecP3VecP3VecP3VecP3VecP3VecP3VecP3VecP3VecP3Vec();
extern "C" void startTentacleSoundLevel__12Z2CreatureOIF10JAISoundIDUcfUlSc();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void checkPass__12J3DFrameCtrlFf();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void __cvt_fp2unsigned();
extern "C" void _savegpr_15();
extern "C" void _savegpr_21();
extern "C" void _savegpr_22();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_15();
extern "C" void _restgpr_21();
extern "C" void _restgpr_22();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5];
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_SphAttr[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 mSimpleTexObj__21dDlst_shadowControl_c[32];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 struct_80450C98[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
//
// Declarations:
//
/* 8061B0A4-8061B0B0 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 8061B0B0-8061B0C4 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 */] = {
0x02000201,
/* padding */
0x40080000,
0x00000000,
0x3FE00000,
0x00000000,
};
#pragma pop
UNK_REL_DATA;
/* 8061056C-806105BC 0000EC 0050+00 1/1 0/0 0/0 .text __ct__12daB_OB_HIO_cFv */
daB_OB_HIO_c::daB_OB_HIO_c() {
@ -399,112 +102,12 @@ static int TailCallBack(J3DJoint* i_joint, int param_1) {
return 1;
}
/* ############################################################################################## */
/* 8061B4C0-8061B4C4 000008 0001+03 4/4 0/0 0/0 .bss @1109 */
static u8 lit_1109[1 + 3 /* padding */];
UNK_REL_BSS;
/* 8061B4C4-8061B4C8 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */
#pragma push
#pragma force_active on
static u8 lit_1107[1 + 3 /* padding */];
#pragma pop
/* 8061B4C8-8061B4CC 000010 0001+03 0/0 0/0 0/0 .bss @1105 */
#pragma push
#pragma force_active on
static u8 lit_1105[1 + 3 /* padding */];
#pragma pop
/* 8061B4CC-8061B4D0 000014 0001+03 0/0 0/0 0/0 .bss @1104 */
#pragma push
#pragma force_active on
static u8 lit_1104[1 + 3 /* padding */];
#pragma pop
/* 8061B4D0-8061B4D4 000018 0001+03 0/0 0/0 0/0 .bss @1099 */
#pragma push
#pragma force_active on
static u8 lit_1099[1 + 3 /* padding */];
#pragma pop
/* 8061B4D4-8061B4D8 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */
#pragma push
#pragma force_active on
static u8 lit_1097[1 + 3 /* padding */];
#pragma pop
/* 8061B4D8-8061B4DC 000020 0001+03 0/0 0/0 0/0 .bss @1095 */
#pragma push
#pragma force_active on
static u8 lit_1095[1 + 3 /* padding */];
#pragma pop
/* 8061B4DC-8061B4E0 000024 0001+03 0/0 0/0 0/0 .bss @1094 */
#pragma push
#pragma force_active on
static u8 lit_1094[1 + 3 /* padding */];
#pragma pop
/* 8061B4E0-8061B4E4 000028 0001+03 0/0 0/0 0/0 .bss @1057 */
#pragma push
#pragma force_active on
static u8 lit_1057[1 + 3 /* padding */];
#pragma pop
/* 8061B4E4-8061B4E8 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */
#pragma push
#pragma force_active on
static u8 lit_1055[1 + 3 /* padding */];
#pragma pop
/* 8061B4E8-8061B4EC 000030 0001+03 0/0 0/0 0/0 .bss @1053 */
#pragma push
#pragma force_active on
static u8 lit_1053[1 + 3 /* padding */];
#pragma pop
/* 8061B4EC-8061B4F0 000034 0001+03 0/0 0/0 0/0 .bss @1052 */
#pragma push
#pragma force_active on
static u8 lit_1052[1 + 3 /* padding */];
#pragma pop
/* 8061B4F0-8061B4F4 000038 0001+03 0/0 0/0 0/0 .bss @1014 */
#pragma push
#pragma force_active on
static u8 lit_1014[1 + 3 /* padding */];
#pragma pop
/* 8061B4F4-8061B4F8 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */
#pragma push
#pragma force_active on
static u8 lit_1012[1 + 3 /* padding */];
#pragma pop
/* 8061B4F8-8061B4FC 000040 0001+03 0/0 0/0 0/0 .bss @1010 */
#pragma push
#pragma force_active on
static u8 lit_1010[1 + 3 /* padding */];
#pragma pop
/* 8061B4FC-8061B500 -00001 0004+00 1/2 0/0 0/0 .bss None */
/* 8061B4FC 0001+00 data_8061B4FC @1009 */
/* 8061B4FD 0003+00 data_8061B4FD None */
#pragma push
#pragma force_active on
static u8 struct_8061B4FC;
#pragma pop
#pragma push
#pragma force_active on
static u8 data_8061B4FD;
#pragma pop
/* 8061B500-8061B504 000048 0004+00 0/2 0/0 0/0 .bss moveSW */
#pragma push
#pragma force_active on
static BOOL moveSW;
#pragma pop
/* 8061B504-8061B508 00004C 0004+00 1/4 0/0 0/0 .bss moveSW2 */
static BOOL moveSW2;
@ -1910,13 +1513,13 @@ static int fish_end(b_ob_class* i_this) {
}
/* 8061B0D0-8061B11C 00002C 004C+00 1/1 0/0 0/0 .data buf_p */
SECTION_DATA static f32 buf_p[] = {
static f32 buf_p[] = {
0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 8.8f,
9.6f, 10.4f, 11.2f, 12.0f, 12.6f, 13.2f, 13.8f, 14.4f, 15.0f,
};
/* 8061B11C-8061B168 000078 004C+00 1/1 0/0 0/0 .data size_p */
SECTION_DATA static f32 size_p[] = {1.0f, 1.05f, 1.075f, 1.1f, 1.1f, 1.075f, 1.05f,
static f32 size_p[] = {1.0f, 1.05f, 1.075f, 1.1f, 1.1f, 1.075f, 1.05f,
1.0f, 0.9f, 0.85f, 0.8f, 0.75f, 0.7f, 0.65f,
0.6f, 0.55f, 0.5f, 0.45f, 1.0f};
@ -4013,178 +3616,7 @@ static int daB_OB_Create(fopAc_ac_c* i_this) {
return phase_state;
}
/* 8061B5DC-8061B5E0 000124 0004+00 0/0 0/0 0/0 .bss
* sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
#pragma push
#pragma force_active on
static u8 data_8061B5DC[4];
#pragma pop
/* 8061B5E0-8061B5E4 000128 0004+00 0/0 0/0 0/0 .bss
* sInstance__35JASGlobalInstance<14JASAudioThread> */
#pragma push
#pragma force_active on
static u8 data_8061B5E0[4];
#pragma pop
/* 8061B5E4-8061B5E8 00012C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B5E4[4];
#pragma pop
/* 8061B5E8-8061B5EC 000130 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B5E8[4];
#pragma pop
/* 8061B5EC-8061B5F0 000134 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
*/
#pragma push
#pragma force_active on
static u8 data_8061B5EC[4];
#pragma pop
/* 8061B5F0-8061B5F4 000138 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
*/
#pragma push
#pragma force_active on
static u8 data_8061B5F0[4];
#pragma pop
/* 8061B5F4-8061B5F8 00013C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
*/
#pragma push
#pragma force_active on
static u8 data_8061B5F4[4];
#pragma pop
/* 8061B5F8-8061B5FC 000140 0004+00 0/0 0/0 0/0 .bss
* sInstance__36JASGlobalInstance<15JAISoundStarter> */
#pragma push
#pragma force_active on
static u8 data_8061B5F8[4];
#pragma pop
/* 8061B5FC-8061B600 000144 0004+00 0/0 0/0 0/0 .bss
* sInstance__35JASGlobalInstance<14Z2SoundStarter> */
#pragma push
#pragma force_active on
static u8 data_8061B5FC[4];
#pragma pop
/* 8061B600-8061B604 000148 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
#pragma push
#pragma force_active on
static u8 data_8061B600[4];
#pragma pop
/* 8061B604-8061B608 00014C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B604[4];
#pragma pop
/* 8061B608-8061B60C 000150 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B608[4];
#pragma pop
/* 8061B60C-8061B610 000154 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAIStreamMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B60C[4];
#pragma pop
/* 8061B610-8061B614 000158 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
*/
#pragma push
#pragma force_active on
static u8 data_8061B610[4];
#pragma pop
/* 8061B614-8061B618 00015C 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAISoundInfo> */
#pragma push
#pragma force_active on
static u8 data_8061B614[4];
#pragma pop
/* 8061B618-8061B61C 000160 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13JAUSoundTable> */
#pragma push
#pragma force_active on
static u8 data_8061B618[4];
#pragma pop
/* 8061B61C-8061B620 000164 0004+00 0/0 0/0 0/0 .bss
* sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
#pragma push
#pragma force_active on
static u8 data_8061B61C[4];
#pragma pop
/* 8061B620-8061B624 000168 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAUSoundInfo> */
#pragma push
#pragma force_active on
static u8 data_8061B620[4];
#pragma pop
/* 8061B624-8061B628 00016C 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
*/
#pragma push
#pragma force_active on
static u8 data_8061B624[4];
#pragma pop
/* 8061B628-8061B62C 000170 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B628[4];
#pragma pop
/* 8061B62C-8061B630 000174 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
*/
#pragma push
#pragma force_active on
static u8 data_8061B62C[4];
#pragma pop
/* 8061B630-8061B634 000178 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
*/
#pragma push
#pragma force_active on
static u8 data_8061B630[4];
#pragma pop
/* 8061B634-8061B638 00017C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
*/
#pragma push
#pragma force_active on
static u8 data_8061B634[4];
#pragma pop
/* 8061B638-8061B63C 000180 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
*/
#pragma push
#pragma force_active on
static u8 data_8061B638[4];
#pragma pop
/* 8061B63C-8061B640 000184 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
#pragma push
#pragma force_active on
static u8 data_8061B63C[4];
#pragma pop
/* 8061B09C-8061B09C 000318 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
AUDIO_INSTANCES;
/* 8061B3DC-8061B3FC -00001 0020+00 1/0 0/0 0/0 .data l_daB_OB_Method */
static actor_method_class l_daB_OB_Method = {

View File

@ -13,6 +13,108 @@ UNK_REL_DATA;
#include "f_op/f_op_actor_enemy.h"
enum B_TN_RES_FILE_ID {
/* BCK */
/* 0x04 */ BCK_TN2B_DIE = 4,
/* 0x05 */ BCK_TNA_ATACK_A,
/* 0x06 */ BCK_TNA_ATACK_B,
/* 0x07 */ BCK_TNA_ATACK_OP,
/* 0x08 */ BCK_TNA_ATACK_SHIELD,
/* 0x09 */ BCK_TNA_DAMAGE_L,
/* 0x0A */ BCK_TNA_DAMAGE_LAST,
/* 0x0B */ BCK_TNA_DAMAGE_R,
/* 0x0C */ BCK_TNA_GUARD,
/* 0x0D */ BCK_TNA_GUARD_DAMAGE,
/* 0x0E */ BCK_TNA_TURN_OP,
/* 0x0F */ BCK_TNA_WAIT,
/* 0x10 */ BCK_TNA_WAIT_B_1,
/* 0x11 */ BCK_TNA_WAIT_B_2,
/* 0x12 */ BCK_TNA_WAIT_OP,
/* 0x13 */ BCK_TNA_WALK,
/* 0x14 */ BCK_TNB_ATACK_A,
/* 0x15 */ BCK_TNB_ATACK_B,
/* 0x16 */ BCK_TNB_ATACK_SHIELD,
/* 0x17 */ BCK_TNB_DAMAGE_L,
/* 0x18 */ BCK_TNB_DAMAGE_R,
/* 0x19 */ BCK_TNB_DIE,
/* 0x1A */ BCK_TNB_DOWN,
/* 0x1B */ BCK_TNB_DOWN_SIPPU,
/* 0x1C */ BCK_TNB_GUARD_A,
/* 0x1D */ BCK_TNB_GUARD_B,
/* 0x1E */ BCK_TNB_JUMP_B_1,
/* 0x1F */ BCK_TNB_JUMP_B_2,
/* 0x20 */ BCK_TNB_JUMP_F_1,
/* 0x21 */ BCK_TNB_JUMP_F_2,
/* 0x22 */ BCK_TNB_JUMP_L_1,
/* 0x23 */ BCK_TNB_JUMP_L_2,
/* 0x24 */ BCK_TNB_JUMP_R_1,
/* 0x25 */ BCK_TNB_JUMP_R_2,
/* 0x26 */ BCK_TNB_PULL,
/* 0x27 */ BCK_TNB_SWORD_B_PULL_A,
/* 0x28 */ BCK_TNB_SWORD_B_PULL_B,
/* 0x29 */ BCK_TNB_THROW,
/* 0x2A */ BCK_TNB_WAIT,
/* 0x2B */ BCK_TNB_WAIT_B_1,
/* 0x2C */ BCK_TNB_WAIT_B_2,
/* 0X2D */ BCK_TNB_WALK,
/* BMDR */
/* 0x30 */ BMDR_TN_EFFECT = 0x30,
};
enum B_TNP_RES_FILE_ID {
/* BMDR */
/* 0x03 */ BMDR_TN = 3,
/* 0x04 */ BMDR_TN_ARMOR_ARM_L,
/* 0x05 */ BMDR_TN_ARMOR_ARM_R,
/* 0x06 */ BMDR_TN_ARMOR_CHEST_B,
/* 0x07 */ BMDR_TN_ARMOR_CHEST_F,
/* 0x08 */ BMDR_TN_ARMOR_HEAD_B,
/* 0x09 */ BMDR_TN_ARMOR_HEAD_F,
/* 0x0A */ BMDR_TN_ARMOR_SHOULDER_L,
/* 0x0B */ BMDR_TN_ARMOR_SHOULDER_R,
/* 0x0C */ BMDR_TN_ARMOR_WAIST_B,
/* 0x0D */ BMDR_TN_ARMOR_WAIST_F,
/* 0x0E */ BMDR_TN_ARMOR_WAIST_L,
/* 0x0F */ BMDR_TN_ARMOR_WAIST_R,
/* 0x10 */ BMDR_TN_SHIELD,
/* 0x11 */ BMDR_TN_SWORD_A,
/* 0x12 */ BMDR_TN_SWORD_B,
/* 0x13 */ BMDR_TN_SWORD_B_SAYA,
};
enum B_TNP2_RES_FILE_ID {
/* BMDR */
/* 0x04 */ BMDR_TN2 = 4,
/* 0x05 */ BMDR_TN2_ARMOR_ARM_L,
/* 0x06 */ BMDR_TN2_ARMOR_ARM_R,
/* 0x07 */ BMDR_TN2_ARMOR_CHEST_B,
/* 0x08 */ BMDR_TN2_ARMOR_CHEST_F,
/* 0x09 */ BMDR_TN2_ARMOR_HEAD_A,
/* 0x0A */ BMDR_TN2_ARMOR_HEAD_B,
/* 0x0B */ BMDR_TN2_ARMOR_SHOULDER_L,
/* 0x0C */ BMDR_TN2_ARMOR_SHOULDER_R,
/* 0x0D */ BMDR_TN2_ARMOR_WAIST_B,
/* 0x0E */ BMDR_TN2_ARMOR_WAIST_F,
/* 0x0F */ BMDR_TN2_ARMOR_WAIST_L,
/* 0x10 */ BMDR_TN2_ARMOR_WAIST_R,
/* 0x11 */ BMDR_TN2_MACE,
/* 0x12 */ BMDR_TN2_SHIELD,
/* 0x13 */ BMDR_TN2_SWORD_A,
/* 0x14 */ BMDR_TN2_SWORD_B,
/* 0x15 */ BMDR_TN2_SWORD_B_SAYA,
/* BRK */
/* 0x18 */ BRK_TN2_BODY = 0x18,
/* 0x19 */ BRK_TN2_COLOR_1,
/* 0x1A */ BRK_TN2_COLOR_2,
/* 0x1B */ BRK_TN2_SHIELD,
};
enum B_TN_JOINT {
};
/* 8062E93C-8062E97C 000038 0040+00 0/1 0/0 0/0 .data cc_tt_src__22@unnamed@d_a_b_tn_cpp@
*/
namespace {
@ -126,8 +228,17 @@ static s8 tn_model_brk_idx2[16] = {
/* 8062EB28-8062EBA8 000224 0080+00 0/1 0/0 0/0 .data tn_part_model_id__22@unnamed@d_a_b_tn_cpp@ */
static int tn_part_model_id[32] = {
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 18,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 17, 21, 20,
/* TN */
BMDR_TN_ARMOR_ARM_L, BMDR_TN_ARMOR_ARM_R, BMDR_TN_ARMOR_CHEST_B, BMDR_TN_ARMOR_CHEST_F,
BMDR_TN_ARMOR_HEAD_B, BMDR_TN_ARMOR_HEAD_F, BMDR_TN_ARMOR_SHOULDER_L, BMDR_TN_ARMOR_SHOULDER_R,
BMDR_TN_ARMOR_WAIST_B, BMDR_TN_ARMOR_WAIST_F, BMDR_TN_ARMOR_WAIST_L, BMDR_TN_ARMOR_WAIST_R,
BMDR_TN_SHIELD, BMDR_TN_SWORD_A, BMDR_TN_SWORD_B_SAYA, BMDR_TN_SWORD_B,
/* TN2 */
BMDR_TN2_ARMOR_ARM_L, BMDR_TN2_ARMOR_ARM_R, BMDR_TN2_ARMOR_CHEST_B, BMDR_TN2_ARMOR_CHEST_F,
BMDR_TN2_ARMOR_HEAD_A, BMDR_TN2_ARMOR_HEAD_B, BMDR_TN2_ARMOR_SHOULDER_L, BMDR_TN2_ARMOR_SHOULDER_R,
BMDR_TN2_ARMOR_WAIST_B, BMDR_TN2_ARMOR_WAIST_F, BMDR_TN2_ARMOR_WAIST_L, BMDR_TN2_ARMOR_WAIST_R,
BMDR_TN2_SHIELD, BMDR_TN2_MACE, BMDR_TN2_SWORD_B_SAYA, BMDR_TN2_SWORD_B,
};
/* 8062EBA8-8062EBE8 0002A4 0040+00 2/2 0/0 0/0 .data tn_part_joint__22@unnamed@d_a_b_tn_cpp@ */
@ -277,7 +388,7 @@ int daB_TN_c::draw() {
g_env_light.setLightTevColorType_MAJI(model, &tevStr);
mpModelMorf1->entryDL();
} else {
model = mpModels[i];
model = mpPartModels[i];
g_env_light.setLightTevColorType_MAJI(model, &tevStr);
if (mType == 1 && mpBrkAnms[i]) {
@ -294,11 +405,11 @@ int daB_TN_c::draw() {
}
if (mUpdateModelTimer != 0) {
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
modelData = mpModel->getModelData();
g_env_light.setLightTevColorType_MAJI(swordEffectModel, &tevStr);
modelData = swordEffectModel->getModelData();
J3DGXColor* mKColor = modelData->getMaterialNodePointer(0)->getTevKColor(3);
mKColor->a = l_HIO.mKColorA;
mDoExt_modelUpdateDL(mpModel);
mDoExt_modelUpdateDL(swordEffectModel);
}
return 1;
@ -437,7 +548,7 @@ void daB_TN_c::calcShieldMove() {
switch (mStates[12]) {
case 2:
mDoMtx_stack_c::copy(mpModels[12]->getBaseTRMtx());
mDoMtx_stack_c::copy(mpPartModels[12]->getBaseTRMtx());
mDoMtx_stack_c::multVecZero(&mPositions[12]);
mPositionsCopy[12] = mPositions[12];
mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &field_0x99c[12]);
@ -510,7 +621,7 @@ void daB_TN_c::calcSwordMoveA() {
}
case 2: {
mDoMtx_stack_c::copy(mpModels[idx]->getBaseTRMtx());
mDoMtx_stack_c::copy(mpPartModels[idx]->getBaseTRMtx());
mDoMtx_stack_c::multVecZero(&mPositions[idx]);
mPositionsCopy[idx] = mPositions[idx];
mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &field_0x99c[idx]);
@ -650,7 +761,7 @@ void daB_TN_c::calcOtherPartMove(int i_idx) {
if (i_idx != 14) {
setArmorBreakEffect(i_idx);
}
mDoMtx_stack_c::copy(mpModels[i_idx]->getBaseTRMtx());
mDoMtx_stack_c::copy(mpPartModels[i_idx]->getBaseTRMtx());
mDoMtx_stack_c::multVecZero(&mPositions[i_idx]);
mPositionsCopy[i_idx] = mPositions[i_idx];
mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &field_0x99c[i_idx]);
@ -1486,7 +1597,7 @@ void daB_TN_c::setAttackBlurEffect(int i_data) {
JPABaseEmitter* mBaseEmitter = dComIfGp_particle_getEmitter(mParticleKeys[i]);
if (mBaseEmitter) {
mBaseEmitter->setGlobalSRTMatrix(mpModels[13]->getBaseTRMtx());
mBaseEmitter->setGlobalSRTMatrix(mpPartModels[13]->getBaseTRMtx());
}
}
}
@ -1757,7 +1868,7 @@ void daB_TN_c::executeOpening() {
switch (mActionMode2) {
case ACTION2_0_e:
speedF = 0.0f;
setBck(18, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT_OP, 2, 3.0f, 1.0f);
mActionMode2 = ACTION2_1_e;
// [[fallthrough]]
@ -1810,7 +1921,7 @@ void daB_TN_c::executeOpening() {
mCamCenter.z + field_0x724 * cM_scos(field_0x720));
if (mTimer1 == 0) {
setBck(14, 0, 20.0f, 1.0f);
setBck(BCK_TNA_TURN_OP, 0, 20.0f, 1.0f);
mActionMode2 = ACTION2_4_e;
mBlendStatus = 1;
mBlend = 0.0f;
@ -1839,7 +1950,7 @@ void daB_TN_c::executeOpening() {
mCamEye.set(mCamCenter.x + field_0x724 * cM_ssin(field_0x720), -210.0f,
mCamCenter.z + field_0x724 * cM_scos(field_0x720));
if (mpModelMorf2->isStop()) {
setBck(15, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT, 2, 3.0f, 1.0f);
mTimer1 = 60;
mActionMode2 = ACTION2_10_e;
}
@ -1856,7 +1967,7 @@ void daB_TN_c::executeOpening() {
}
if (mTimer1 == 0) {
setBck(7, 0, 10.0f, 1.0f);
setBck(BCK_TNA_ATACK_OP, 0, 10.0f, 1.0f);
mActionMode2 = ACTION2_14_e;
}
break;
@ -1952,7 +2063,7 @@ void daB_TN_c::executeWaitH() {
switch (mActionMode2) {
case ACTION2_0_e:
speedF = 0.0f;
setBck(15, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT, 2, 3.0f, 1.0f);
mActionMode2 = ACTION2_1_e;
// [[fallthrough]]
@ -2021,9 +2132,9 @@ void daB_TN_c::executeChaseH() {
case ACTION2_8_e:
case ACTION2_10_e:
if (mActionMode2 == ACTION2_8_e) {
setBck(19, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WALK, 2, 3.0f, 1.0f);
} else {
setBck(19, 2, 10.0f, 1.0f);
setBck(BCK_TNA_WALK, 2, 10.0f, 1.0f);
}
mActionMode2 = ACTION2_9_e;
@ -2050,9 +2161,9 @@ void daB_TN_c::executeChaseH() {
case ACTION2_1_e:
case ACTION2_11_e:
if (mActionMode2 == ACTION2_1_e) {
setBck(16, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_1, 2, 3.0f, 1.0f);
} else {
setBck(16, 2, 10.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_1, 2, 10.0f, 1.0f);
}
mActionMode2 = ACTION2_2_e;
@ -2076,7 +2187,7 @@ void daB_TN_c::executeChaseH() {
break;
case ACTION2_3_e:
setBck(16, 2, 3.0f, -1.0f);
setBck(BCK_TNA_WAIT_B_1, 2, 3.0f, -1.0f);
mActionMode2 = ACTION2_4_e;
current.angle.y = shape_angle.y + 0x8000;
mWalkDir = 0;
@ -2112,11 +2223,11 @@ void daB_TN_c::executeChaseH() {
case ACTION2_5_e:
if (cM_rnd() < 0.5f) {
mActionMode2 = ACTION2_6_e;
setBck(17, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x4000;
} else {
mActionMode2 = ACTION2_7_e;
setBck(17, 2, 3.0f, -1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, -1.0f);
current.angle.y = shape_angle.y + -0x4000;
}
@ -2131,7 +2242,7 @@ void daB_TN_c::executeChaseH() {
if (mTimer1 == 0) {
if (cM_rnd() < 0.5f) {
setBck(17, 2, 3.0f, -1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, -1.0f);
current.angle.y = shape_angle.y + -0x4000;
mActionMode2 = ACTION2_7_e;
}
@ -2155,7 +2266,7 @@ void daB_TN_c::executeChaseH() {
if (mTimer1 == 0) {
if (cM_rnd() < 0.5f) {
setBck(17, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x4000;
mActionMode2 = ACTION2_6_e;
}
@ -2172,7 +2283,7 @@ void daB_TN_c::executeChaseH() {
break;
case ACTION2_100_e:
setBck(16, 2, 10.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_1, 2, 10.0f, 1.0f);
mActionMode2 = ACTION2_102_e;
speedF = 2.3f;
current.angle.y = shape_angle.y;
@ -2196,24 +2307,24 @@ void daB_TN_c::executeChaseH() {
case ACTION2_103_e:
mPlayerDistance = 3.0f;
if ((u8)checkBck(19)) {
if ((u8)checkBck(BCK_TNA_WALK)) {
mPlayerDistance = 10.0f;
}
if (abs(sVar5) < 0x2000) {
if (cM_rnd() < 0.5f) {
mActionMode2 = ACTION2_106_e;
setBck(17, 2, mPlayerDistance, 1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, mPlayerDistance, 1.0f);
} else {
mActionMode2 = ACTION2_107_e;
setBck(17, 2, mPlayerDistance, -1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, mPlayerDistance, -1.0f);
}
} else if (sVar5 < 0) {
mActionMode2 = ACTION2_106_e;
setBck(17, 2, mPlayerDistance, 1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, mPlayerDistance, 1.0f);
} else {
mActionMode2 = ACTION2_107_e;
setBck(17, 2, mPlayerDistance, -1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, mPlayerDistance, -1.0f);
}
mTimer1 = cM_rndFX(20.0f) + 60.0f;
@ -2246,21 +2357,21 @@ void daB_TN_c::executeChaseH() {
mTimer1 = cM_rndFX(20.0f) + 90.0f;
if (cM_rnd() < 0.5f) {
if (mActionMode2 == ACTION2_106_e) {
setBck(17, 2, 3.0f, -1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, -1.0f);
mActionMode2 = ACTION2_107_e;
} else {
setBck(17, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, 1.0f);
mActionMode2 = ACTION2_106_e;
}
}
} else if (abs(sVar5) < 0x7000) {
if (mActionMode2 == ACTION2_106_e) {
if (sVar5 > 0) {
setBck(17, 2, 3.0f, -1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, -1.0f);
mActionMode2 = ACTION2_107_e;
}
} else if (sVar5 < 0) {
setBck(17, 2, 3.0f, 1.0f);
setBck(BCK_TNA_WAIT_B_2, 2, 3.0f, 1.0f);
mActionMode2 = ACTION2_106_e;
}
}
@ -2351,16 +2462,16 @@ void daB_TN_c::executeAttackH() {
if (playerDistance < 250.0f) {
mActionMode2 = ACTION2_1_e;
setBck(5, 0, 3.0f, 1.0f);
setBck(BCK_TNA_ATACK_A, 0, 3.0f, 1.0f);
} else if (playerDistance < 350.0f) {
mActionMode2 = ACTION2_2_e;
setBck(6, 0, 3.0f, 1.0f);
setBck(BCK_TNA_ATACK_B, 0, 3.0f, 1.0f);
} else if (cM_rnd() < 0.5f) {
mActionMode2 = ACTION2_1_e;
setBck(5, 0, 3.0f, 1.0f);
setBck(BCK_TNA_ATACK_A, 0, 3.0f, 1.0f);
} else {
mActionMode2 = ACTION2_2_e;
setBck(6, 0, 3.0f, 1.0f);
setBck(BCK_TNA_ATACK_B, 0, 3.0f, 1.0f);
setAttackBlurEffect(1);
}
@ -2461,7 +2572,7 @@ void daB_TN_c::executeAttackShieldH() {
switch (mActionMode2) {
case ACTION2_0_e:
speedF = 0.0f;
setBck(8, 0, 3.0f, 1.0f);
setBck(BCK_TNA_ATACK_SHIELD, 0, 3.0f, 1.0f);
mActionMode2 = ACTION2_1_e;
break;
@ -2510,10 +2621,10 @@ void daB_TN_c::executeGuardH() {
if (field_0xaa8) {
shape_angle.y = fopAcM_searchPlayerAngleY(this);
setBck(13, 0, 0.0f, 1.0f);
setBck(BCK_TNA_GUARD_DAMAGE, 0, 0.0f, 1.0f);
} else {
cLib_chaseAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 0x2000);
setBck(12, 0, 0.0f, 1.0f);
setBck(BCK_TNA_GUARD, 0, 0.0f, 1.0f);
}
break;
@ -2575,9 +2686,9 @@ void daB_TN_c::executeDamageH() {
current.pos.set(sp1c.x, current.pos.y, sp1c.z);
if (mActionMode2 == ACTION2_0_e) {
setBck(9, 0, 0.0f, 1.0f);
setBck(BCK_TNA_DAMAGE_L, 0, 0.0f, 1.0f);
} else {
setBck(11, 0, 0.0f, 1.0f);
setBck(BCK_TNA_DAMAGE_R, 0, 0.0f, 1.0f);
}
mSound.startCreatureVoice(Z2SE_EN_TN_V_DMG, -1);
@ -2641,7 +2752,7 @@ void daB_TN_c::executeChangeDemo() {
player->changeDemoMode(4, 1, 0, 0);
speedF = 0.0f;
setBck(10, 0, 3.0f, 1.0f);
setBck(BCK_TNA_DAMAGE_LAST, 0, 3.0f, 1.0f);
mSound.startCreatureVoice(Z2SE_EN_TN_V_DMG_2, -1);
@ -2688,7 +2799,7 @@ void daB_TN_c::executeChangeDemo() {
}
if (mpModelMorf2->isStop()) {
setBck(30, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_B_1, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x10000 + -0x8000;
mActionMode2 = ACTION2_2_e;
}
@ -2710,7 +2821,7 @@ void daB_TN_c::executeChangeDemo() {
}
if (mpModelMorf2->isStop() && mAcch.ChkGroundHit()) {
setBck(31, 0, 5.0f, 1.0f);
setBck(BCK_TNB_JUMP_B_2, 0, 5.0f, 1.0f);
mSound.startCreatureSound(Z2SE_EN_TN_FOOT_M1, 0, -1);
mActionMode2 = ACTION2_3_e;
}
@ -2727,7 +2838,7 @@ void daB_TN_c::executeChangeDemo() {
if (mpModelMorf2->isStop()) {
speedF = 0.0f;
setBck(41, 0, 3.0f, 1.0f);
setBck(BCK_TNB_THROW, 0, 3.0f, 1.0f);
mActionMode2 = ACTION2_4_e;
}
break;
@ -2766,7 +2877,7 @@ void daB_TN_c::executeChangeDemo() {
if (mpModelMorf2->isStop()) {
player->changeDemoMode(16, 2, 0, 0);
setBck(42, 2, 3.0f, 1.0f);
setBck(BCK_TNB_WAIT, 2, 3.0f, 1.0f);
mTimer1 = 60;
mActionMode2 = ACTION2_11_e;
}
@ -2811,7 +2922,7 @@ void daB_TN_c::executeChangeDemo() {
cLib_addCalcPos2(&mCamEye, sp34, 0.1f, 70.0f);
if (mTimer1 == 0) {
setBck(38, 0, 3.0f, 1.0f);
setBck(BCK_TNB_PULL, 0, 3.0f, 1.0f);
mSound.startCreatureVoice(Z2SE_EN_TN_V_PULL_OUT, -1);
mActionMode2 = ACTION2_15_e;
sp28.set(-100.0f, -400.0f, 300.0f);
@ -2831,7 +2942,7 @@ void daB_TN_c::executeChangeDemo() {
mSound.startCreatureSound(Z2SE_EN_TN_PULL_OUT, 0, -1);
mStates[15] = 1;
mStates[14] = 2;
mpModelMorf1->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_tn", 40), 0, 0.0f, 1.0f,
mpModelMorf1->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_tn", BCK_TNB_SWORD_B_PULL_B), 0, 0.0f, 1.0f,
0.0f, -1.0f);
}
@ -2840,7 +2951,7 @@ void daB_TN_c::executeChangeDemo() {
mSwordSphs[i].OffCoSetBit();
}
mCps.OffCoSetBit();
setBck(42, 2, 3.0f, 1.0f);
setBck(BCK_TNB_WAIT, 2, 3.0f, 1.0f);
mTimer1 = 30;
mActionMode2 = ACTION2_16_e;
return;
@ -2876,7 +2987,7 @@ void daB_TN_c::executeZakoChangeDemo() {
mTimer1 = 30;
speedF = 0.0f;
setBck(10, 0, 3.0f, 1.0f);
setBck(BCK_TNA_DAMAGE_LAST, 0, 3.0f, 1.0f);
mSound.startCreatureVoice(Z2SE_EN_TN_V_DMG_2, -1);
@ -2896,7 +3007,7 @@ void daB_TN_c::executeZakoChangeDemo() {
cLib_addCalcAngleS(&shape_angle.y, mPlayerAngleY, 8, 0x100, 16);
if (mpModelMorf2->isStop()) {
setBck(30, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_B_1, 0, 3.0f, 1.0f);
current.angle.y = shape_angle.y + 0x8000;
mActionMode2 = ACTION2_2_e;
}
@ -2921,7 +3032,7 @@ void daB_TN_c::executeZakoChangeDemo() {
return;
}
setBck(31, 0, 5.0f, 1.0f);
setBck(BCK_TNB_JUMP_B_2, 0, 5.0f, 1.0f);
mSound.startCreatureSound(Z2SE_EN_TN_FOOT_M1, 0, -1);
mActionMode2 = ACTION2_3_e;
@ -2937,7 +3048,7 @@ void daB_TN_c::executeZakoChangeDemo() {
if (mpModelMorf2->isStop()) {
speedF = 0.0f;
setBck(41, 0, 3.0f, 1.0f);
setBck(BCK_TNB_THROW, 0, 3.0f, 1.0f);
mActionMode2 = ACTION2_4_e;
}
break;
@ -2965,7 +3076,7 @@ void daB_TN_c::executeZakoChangeDemo() {
}
if (mpModelMorf2->isStop()) {
setBck(38, 0, 3.0f, 1.0f);
setBck(BCK_TNB_PULL, 0, 3.0f, 1.0f);
mSound.startCreatureVoice(Z2SE_EN_TN_V_PULL_OUT, -1);
mActionMode2 = ACTION2_5_e;
}
@ -2976,7 +3087,7 @@ void daB_TN_c::executeZakoChangeDemo() {
mSound.startCreatureSound(Z2SE_EN_TN_PULL_OUT, 0, -1);
mStates[15] = 1;
mStates[14] = 2;
mpModelMorf1->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_tn", 40), 0, 0.0f, 1.0f,
mpModelMorf1->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_tn", BCK_TNB_SWORD_B_PULL_B), 0, 0.0f, 1.0f,
0.0f, -1.0f);
}
@ -3052,18 +3163,18 @@ void daB_TN_c::initChaseL(int param_1) {
switch (mActionMode2) {
case ACTION2_2_e:
setBck(42, 2, 10.0f, 1.0f);
setBck(BCK_TNB_WAIT, 2, 10.0f, 1.0f);
mTimer1 = 30;
break;
case ACTION2_3_e:
setBck(45, 2, 10.0f, 1.0f);
setBck(BCK_TNB_WALK, 2, 10.0f, 1.0f);
speedF = 4.7f;
break;
case ACTION2_4_e:
if ((u8)checkBck(43) == 0) {
setBck(43, 2, 10.0f, 1.0f);
if ((u8)checkBck(BCK_TNB_WAIT_B_1) == 0) {
setBck(BCK_TNB_WAIT_B_1, 2, 10.0f, 1.0f);
}
current.angle.y = shape_angle.y + 0x4000;
@ -3073,8 +3184,8 @@ void daB_TN_c::initChaseL(int param_1) {
break;
case ACTION2_5_e:
if ((u8)checkBck(44) == 0) {
setBck(44, 2, 10.0f, 1.0f);
if ((u8)checkBck(BCK_TNB_WAIT_B_2) == 0) {
setBck(BCK_TNB_WAIT_B_2, 2, 10.0f, 1.0f);
}
current.angle.y = shape_angle.y + -0x4000;
@ -3084,7 +3195,7 @@ void daB_TN_c::initChaseL(int param_1) {
break;
case ACTION2_6_e:
setBck(30, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_B_1, 0, 3.0f, 1.0f);
break;
case ACTION2_7_e:
@ -3094,38 +3205,38 @@ void daB_TN_c::initChaseL(int param_1) {
case ACTION2_8_e:
case ACTION2_17_e:
setBck(32, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_F_1, 0, 3.0f, 1.0f);
break;
case ACTION2_9_e:
setBck(33, 0, 5.0f, 1.0f);
setBck(BCK_TNB_JUMP_F_2, 0, 5.0f, 1.0f);
mSound.startCreatureSound(Z2SE_EN_TN_FOOT_M1, 0, -1);
break;
case ACTION2_10_e:
case ACTION2_11_e:
setBck(36, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_R_1, 0, 3.0f, 1.0f);
break;
case ACTION2_12_e:
setBck(37, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_R_2, 0, 3.0f, 1.0f);
mSound.startCreatureSound(Z2SE_EN_TN_FOOT_M1, 0, -1);
speedF = 15.0f;
break;
case ACTION2_13_e:
case ACTION2_14_e:
setBck(34, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_L_1, 0, 3.0f, 1.0f);
break;
case ACTION2_15_e:
setBck(35, 0, 3.0f, 1.0f);
setBck(BCK_TNB_JUMP_L_2, 0, 3.0f, 1.0f);
mSound.startCreatureSound(Z2SE_EN_TN_FOOT_M1, 0, -1);
speedF = 15.0f;
break;
case ACTION2_16_e:
setBck(45, 2, 10.0f, 1.0f);
setBck(BCK_TNB_WALK, 2, 10.0f, 1.0f);
speedF = 4.7;
mTimer1 = 30;
}
@ -3455,7 +3566,7 @@ void daB_TN_c::executeChaseL() {
cLib_addCalcAngleS(&shape_angle.y, mPlayerAngleY, 4, 0x400, 16);
current.angle.y = shape_angle.y + 0x8000;
if ((u8)checkBck(30)) {
if ((u8)checkBck(BCK_TNB_JUMP_B_1)) {
if (mpModelMorf2->checkFrame(4.0f)) {
speedF = 50.0f;
speed.y = 19.0f;
@ -3467,7 +3578,7 @@ void daB_TN_c::executeChaseL() {
}
if (mpModelMorf2->isStop()) {
setBck(31, 0, 5.0f, 0.0f);
setBck(BCK_TNB_JUMP_B_2, 0, 5.0f, 0.0f);
}
} else if (mAcch.ChkGroundHit()) {
initChaseL(7);
@ -3622,16 +3733,16 @@ void daB_TN_c::executeAttackL() {
if (mPlayerDistance < 350.0f) {
if (mActionMode2Copy == ACTION2_20_e) {
mActionMode2 = ACTION2_4_e;
setBck(42, 2, 3.0f, 1.0f);
setBck(BCK_TNB_WAIT, 2, 3.0f, 1.0f);
mTimer1 = 3;
} else {
mActionMode2 = ACTION2_2_e;
setBck(21, 0, 3.0f, 1.0f);
setBck(BCK_TNB_ATACK_B, 0, 3.0f, 1.0f);
}
} else {
if (mActionMode2Copy == ACTION2_20_e || mActionMode2Copy == ACTION2_10_e) {
mActionMode2 = ACTION2_3_e;
setBck(42, 2, 3.0f, 1.0f);
setBck(BCK_TNB_WAIT, 2, 3.0f, 1.0f);
if (mActionMode2Copy == ACTION2_10_e) {
mTimer1 = 5;
} else {
@ -3639,7 +3750,7 @@ void daB_TN_c::executeAttackL() {
}
} else {
mActionMode2 = ACTION2_1_e;
setBck(20, 0, 3.0f, 1.0f);
setBck(BCK_TNB_ATACK_A, 0, 3.0f, 1.0f);
}
}
@ -3658,10 +3769,10 @@ void daB_TN_c::executeAttackL() {
if (cM_rnd() < 0.5f) {
mActionMode2 = ACTION2_2_e;
setBck(21, 0, 10.0f, 1.0f);
setBck(BCK_TNB_ATACK_B, 0, 10.0f, 1.0f);
} else {
mActionMode2 = ACTION2_1_e;
setBck(20, 0, 7.0f, 1.0f);
setBck(BCK_TNB_ATACK_A, 0, 7.0f, 1.0f);
}
mWalkDir = 0;
@ -3774,7 +3885,7 @@ void daB_TN_c::executeAttackL() {
}
if (mpModelMorf2->checkFrame(41.0f) && mWalkDir == 10) {
setBck(20, 0, 5.0f, 1.0f);
setBck(BCK_TNB_ATACK_A, 0, 5.0f, 1.0f);
setSwordAtBit(0);
setSwordAtBreak(1);
mActionMode2 = ACTION2_1_e;
@ -3803,7 +3914,7 @@ void daB_TN_c::executeAttackL() {
}
mActionMode2 = ACTION2_1_e;
setBck(20, 0, 3.0f, 1.0f);
setBck(BCK_TNB_ATACK_A, 0, 3.0f, 1.0f);
return;
case ACTION2_4_e:
@ -3812,7 +3923,7 @@ void daB_TN_c::executeAttackL() {
}
mActionMode2 = ACTION2_2_e;
setBck(21, 0, 3.0f, 1.0f);
setBck(BCK_TNB_ATACK_B, 0, 3.0f, 1.0f);
return;
}
}
@ -3836,7 +3947,7 @@ void daB_TN_c::executeAttackShieldL() {
}
speedF = 0.0f;
setBck(22, 0, 3.0f, 1.0f);
setBck(BCK_TNB_ATACK_SHIELD, 0, 3.0f, 1.0f);
mActionMode2 = ACTION2_1_e;
break;
@ -3892,13 +4003,13 @@ void daB_TN_c::executeGuardL() {
u32 mCutType = getCutType();
if ((mCutType & 16) != 0) {
setBck(28, 0, 3.0f, 1.0f);
setBck(BCK_TNB_GUARD_A, 0, 3.0f, 1.0f);
} else if ((mCutType & 32) != 0) {
setBck(29, 0, 3.0f, 1.0f);
setBck(BCK_TNB_GUARD_B, 0, 3.0f, 1.0f);
} else if (cM_rnd() < 0.5f) {
setBck(28, 0, 3.0f, 1.0f);
setBck(BCK_TNB_GUARD_A, 0, 3.0f, 1.0f);
} else {
setBck(29, 0, 3.0f, 1.0f);
setBck(BCK_TNB_GUARD_B, 0, 3.0f, 1.0f);
}
speedF = 0.0f;
@ -3911,7 +4022,7 @@ void daB_TN_c::executeGuardL() {
}
field_0xa91 = false;
setBck(26, 0, 3.0f, 1.0f);
setBck(BCK_TNB_DOWN, 0, 3.0f, 1.0f);
speedF = 17.0f;
}
@ -4029,9 +4140,9 @@ void daB_TN_c::executeDamageL() {
mSphC.OffAtSetBit();
if (mActionMode2 == ACTION2_0_e) {
setBck(23, 0, 3.0f, 1.0f);
setBck(BCK_TNB_DAMAGE_L, 0, 3.0f, 1.0f);
} else {
setBck(24, 0, 3.0f, 1.0f);
setBck(BCK_TNB_DAMAGE_R, 0, 3.0f, 1.0f);
}
mSound.startCreatureVoice(Z2SE_EN_TN_V_DMG, -1);
@ -4075,9 +4186,9 @@ void daB_TN_c::executeYoroke() {
case ACTION2_0_e:
case ACTION2_1_e:
if (mActionMode2 == ACTION2_0_e) {
setBck(27, 0, 3.0f, 1.0f);
setBck(BCK_TNB_DOWN_SIPPU, 0, 3.0f, 1.0f);
} else {
setBck(27, 0, 3.0f, 1.0f);
setBck(BCK_TNB_DOWN_SIPPU, 0, 3.0f, 1.0f);
}
mActionMode2 = ACTION2_10_e;
@ -4147,7 +4258,7 @@ void daB_TN_c::executeEnding() {
camera->mCamera.Stop();
camera->mCamera.SetTrimSize(3);
setBck(25, 0, 3.0f, 1.0f);
setBck(BCK_TNB_DIE, 0, 3.0f, 1.0f);
mSound.startCreatureVoice(Z2SE_EN_TN_V_DMG_2, -1);
mActionMode2 = ACTION2_100_e;
speedF = 0.0f;
@ -4546,7 +4657,7 @@ void daB_TN_c::mtx_set() {
if (i == 15) {
model2 = mpModelMorf1->getModel();
} else {
model2 = mpModels[i];
model2 = mpPartModels[i];
}
switch (mStates[i]) {
@ -4580,7 +4691,7 @@ void daB_TN_c::mtx_set() {
case 4:
case 5:
if (mType == 1 && i == 5) {
mDoMtx_stack_c::copy(mpModels[4]->getBaseTRMtx());
mDoMtx_stack_c::copy(mpPartModels[4]->getBaseTRMtx());
} else {
mDoMtx_stack_c::transS(mPositions[i]);
@ -4603,7 +4714,7 @@ void daB_TN_c::mtx_set() {
mpModelMorf1->modelCalc();
if (mUpdateModelTimer != 0) {
mpModel->setBaseTRMtx(mNewTRMtx);
swordEffectModel->setBaseTRMtx(mNewTRMtx);
}
}
@ -4724,7 +4835,7 @@ void daB_TN_c::cc_set() {
mCpsPos = sp38;
dComIfG_Ccsp()->Set(&mCps);
} else if (mStates[13] == 3) {
mDoMtx_stack_c::copy(mpModels[13]->getBaseTRMtx());
mDoMtx_stack_c::copy(mpPartModels[13]->getBaseTRMtx());
for (int i = 0; i < 4; i++) {
mDoMtx_stack_c::transM(20.0f, 0.0f, 40.0f);
@ -4887,18 +4998,18 @@ static int daB_TN_Delete(daB_TN_c* i_this) {
/* 8062C868-8062CD10 00DD68 04A8+00 1/1 0/0 0/0 .text CreateHeap__8daB_TN_cFv */
int daB_TN_c::CreateHeap() {
static int tn2_brk_index[3] = {25, 26, 27};
static int tn2_brk_index[3] = {BRK_TN2_COLOR_1, BRK_TN2_COLOR_2, BRK_TN2_SHIELD};
J3DModelData* modelData;
if (mType == 0) {
modelData = (J3DModelData*)dComIfG_getObjectRes("B_tnp", 3);
modelData = (J3DModelData*)dComIfG_getObjectRes("B_tnp", BMDR_TN);
} else {
modelData = (J3DModelData*)dComIfG_getObjectRes("B_tnp2", 4);
modelData = (J3DModelData*)dComIfG_getObjectRes("B_tnp2", BMDR_TN2);
}
mpModelMorf2 = new mDoExt_McaMorfSO(modelData, NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes("B_tn", 15), 0, 1.0f,
(J3DAnmTransform*)dComIfG_getObjectRes("B_tn", BCK_TNA_WAIT), 0, 1.0f,
0, -1, &mSound, 0x80000, 0x11000084);
if (mpModelMorf2 == NULL || mpModelMorf2->getModel() == NULL) {
return 0;
@ -4910,7 +5021,7 @@ int daB_TN_c::CreateHeap() {
return 0;
}
if (mpBrkAnm->init(modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes(mArcName, 24), 1, 2,
if (mpBrkAnm->init(modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes(mArcName, BRK_TN2_BODY), 1, 2,
0.0f, 0, -1) == 0)
{
return 0;
@ -4931,9 +5042,9 @@ int daB_TN_c::CreateHeap() {
}
model = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
mpModels[i] = model;
mpPartModels[i] = model;
if (mpModels[i] == NULL) {
if (mpPartModels[i] == NULL) {
return 0;
}
@ -4966,17 +5077,17 @@ int daB_TN_c::CreateHeap() {
modelData = (J3DModelData*)dComIfG_getObjectRes(mArcName, tn_part_model_id[mType * 0x10 + 0xf]);
mpModelMorf1 = new mDoExt_McaMorfSO(modelData, NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes("B_tn", 39), 0, 1.0f,
(J3DAnmTransform*)dComIfG_getObjectRes("B_tn", BCK_TNB_SWORD_B_PULL_A), 0, 1.0f,
0, -1, &mSound, 0x80000, 0x11000084);
if (mpModelMorf1 == NULL || mpModelMorf1->getModel() == NULL) {
return 0;
}
modelData = (J3DModelData*)dComIfG_getObjectRes("B_tn", 48);
modelData = (J3DModelData*)dComIfG_getObjectRes("B_tn", BMDR_TN_EFFECT);
model = mDoExt_J3DModel__create(modelData, 0x80000, 0x31000084);
mpModel = model;
if (mpModel == NULL) {
swordEffectModel = model;
if (swordEffectModel == NULL) {
return 0;
}
return 1;

View File

@ -20,121 +20,93 @@
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
/* 80639F38-80639F3C 000008 0001+03 1/1 0/0 0/0 .bss @1109 */
static u8 lit_1109[1 + 3 /* padding */];
enum B_YO_RES_FILE_ID {
/* BCK */
/* 0x07 */ BCK_YKW_B_ANGRY = 7,
/* 0x08 */ BCK_YKW_B_ANGRY_WAIT,
/* 0x09 */ BCK_YKW_B_DOWN,
/* 0x0A */ BCK_YKW_B_DOWNA,
/* 0x0B */ BCK_YKW_B_DOWNB,
/* 0x0C */ BCK_YKW_B_DOWNC,
/* 0x0D */ BCK_YKW_B_FLOAT,
/* 0x0E */ BCK_YKW_B_FLOATB,
/* 0x0F */ BCK_YKW_B_SCREAM,
/* 0x10 */ BCK_YKW_B_SCREAM_WAIT,
/* 0x11 */ BCK_YKW_B_TALKA,
/* 0x12 */ BCK_YKW_B_TALKB,
/* 0x13 */ BCK_YKW_B_TO_TALKB,
/* 0x14 */ BCK_YKW_B_WAITA,
/* 0x15 */ BCK_YKW_B_WAITB,
/* 0x16 */ BCK_YKW_B_WAITC,
/* 0x17 */ BCK_YKW_B_WAITC2,
/* 0x18 */ BCK_YKW_B_WAITD,
/* 0x19 */ BCK_YKW_B_WALK,
/* 80639F3C-80639F40 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */
#pragma push
#pragma force_active on
static u8 lit_1107[1 + 3 /* padding */];
#pragma pop
/* BMDE */
/* 0x1C */ BMDE_YKW_B = 0x1C,
/* 0x1D */ BMDE_YO01,
/* 0x1E */ BMDE_YO02,
/* 0x1F */ BMDE_YO_CORE,
/* 0x20 */ BMDE_YO_HIBI,
/* 0x21 */ BMDE_YO_ICE,
/* 80639F40-80639F44 000010 0001+03 0/0 0/0 0/0 .bss @1105 */
#pragma push
#pragma force_active on
static u8 lit_1105[1 + 3 /* padding */];
#pragma pop
/* BRK */
/* 0x24 */ BRK_YKW_B = 0x24,
/* 0x25 */ BRK_YKW_B_ANGRY,
/* 0x26 */ BRK_YKW_B_ANGRY_WAIT,
/* 0x27 */ BRK_YKW_B_WHITE,
/* 80639F44-80639F48 000014 0001+03 0/0 0/0 0/0 .bss @1104 */
#pragma push
#pragma force_active on
static u8 lit_1104[1 + 3 /* padding */];
#pragma pop
/* BTK */
/* 0x2A */ BTK_YKW_B_ANGRY = 0x2A,
/* 0x2B */ BTK_YKW_B_DOWN,
/* 0x2C */ BTK_YKW_B_FLOAT,
/* 0x2D */ BTK_YKW_B_SCREAM,
/* 0x2E */ BTK_YKW_B_SCREAM_WAIT,
/* 0x2F */ BTK_YKW_B_TALKA,
/* 0x30 */ BTK_YKW_B_TALKB,
/* 0x31 */ BTK_YKW_B_TO_TALKB,
/* 0x32 */ BTK_YKW_B_WAITA,
/* 0x33 */ BTK_YKW_B_WAITB,
/* 0x34 */ BTK_YKW_B_WALK,
/* 0x35 */ BTK_YO_KANNKYOU,
/* 80639F48-80639F4C 000018 0001+03 0/0 0/0 0/0 .bss @1099 */
#pragma push
#pragma force_active on
static u8 lit_1099[1 + 3 /* padding */];
#pragma pop
/* BTP */
/* 0x38 */ BTP_YKW_B_ANGRY = 0x38,
/* 0x39 */ BTP_YKW_B_FACEA,
/* 0x3A */ BTP_YKW_B_FACEB,
/* 0x3B */ BTP_YKW_B_FLOAT,
/* 0x3C */ BTP_YKW_B_TALKA,
/* 0x3D */ BTP_YKW_B_TALKB,
/* 0x3E */ BTP_YKW_B_TO_TALKB,
/* 0x3F */ BTP_YKW_B_WAITA,
/* 0x40 */ BTP_YKW_B_WAITB,
/* 0x41 */ BTP_YKW_B_WALK,
};
/* 80639F4C-80639F50 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */
#pragma push
#pragma force_active on
static u8 lit_1097[1 + 3 /* padding */];
#pragma pop
enum L5_R50_RES_FIL_ID {
/* BMDR */
/* 0x04 */ BMDR_R50_P1 = 4,
/* 0x05 */ BMDR_R50_P2,
/* 0x06 */ BMDR_T_R50FURNITURE,
/* 80639F50-80639F54 000020 0001+03 0/0 0/0 0/0 .bss @1095 */
#pragma push
#pragma force_active on
static u8 lit_1095[1 + 3 /* padding */];
#pragma pop
/* DZB */
/* 0x09 */ DZB_R50_P1 = 9,
/* 0x0A */ DZB_R50_P2,
};
/* 80639F54-80639F58 000024 0001+03 0/0 0/0 0/0 .bss @1094 */
#pragma push
#pragma force_active on
static u8 lit_1094[1 + 3 /* padding */];
#pragma pop
UNK_REL_BSS;
/* 80639F58-80639F5C 000028 0001+03 0/0 0/0 0/0 .bss @1057 */
#pragma push
#pragma force_active on
static u8 lit_1057[1 + 3 /* padding */];
#pragma pop
/* 80639F5C-80639F60 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */
#pragma push
#pragma force_active on
static u8 lit_1055[1 + 3 /* padding */];
#pragma pop
/* 80639F60-80639F64 000030 0001+03 0/0 0/0 0/0 .bss @1053 */
#pragma push
#pragma force_active on
static u8 lit_1053[1 + 3 /* padding */];
#pragma pop
/* 80639F64-80639F68 000034 0001+03 0/0 0/0 0/0 .bss @1052 */
#pragma push
#pragma force_active on
static u8 lit_1052[1 + 3 /* padding */];
#pragma pop
/* 80639F68-80639F6C 000038 0001+03 0/0 0/0 0/0 .bss @1014 */
#pragma push
#pragma force_active on
static u8 lit_1014[1 + 3 /* padding */];
#pragma pop
/* 80639F6C-80639F70 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */
#pragma push
#pragma force_active on
static u8 lit_1012[1 + 3 /* padding */];
#pragma pop
/* 80639F70-80639F74 000040 0001+03 0/0 0/0 0/0 .bss @1010 */
#pragma push
#pragma force_active on
static u8 lit_1010[1 + 3 /* padding */];
#pragma pop
/* 80639F74-80639F78 -00001 0004+00 2/2 0/0 0/0 .bss None */
/* 80639F74 0001+00 data_80639F74 @1009 */
/* 80639F75 0003+00 data_80639F75 None */
static u8 struct_80639F74;
static bool hioInit;
/* 80639F84-80639FE0 000054 005C+00 12/13 0/0 0/0 .bss l_HIO */
static daB_YO_HIO_c l_HIO;
/* 80639A60-80639A6C 000000 000C+00 4/4 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80639A6C-80639A80 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
0x00000000,
0x3FE00000,
0x00000000,
};
UNK_REL_DATA;
namespace {
/* 80639A80-80639AC4 000020 0044+00 0/1 0/0 0/0 .data cc_yo_src__22@unnamed@d_a_b_yo_cpp@
*/
/* 80639A80-80639AC4 000020 0044+00 0/1 0/0 0/0 .data cc_yo_src__22@unnamed@d_a_b_yo_cpp@ */
static dCcD_SrcCyl cc_yo_src = {
{
{0x0, {{0x100000, 0x4, 0xD}, {0x0, 0x0}, 0x75}}, // mObj
@ -186,71 +158,71 @@ static bool yo_material_draw[27] = {
/* 80639B60-80639BAC 000100 004C+00 0/1 0/0 0/0 .data yo_demo_bck_idx */
static int yo_demo_bck_idx[19] = {
0x07, // ykw_b_angry
0x08, // ykw_b_angry_wait
0x0D, // ykw_b_float
0x11, // ykw_b_talka
0x12, // ykw_b_talkb
0x13, // ykw_b_to_talkb
0x14, // ykw_b_waita
0x15, // ykw_b_waitb
0x19, // ykw_b_walk
0x0F, // ykw_b_scream
0x10, // ykw_b_scream_wait
0x17, // ykw_b_waitc2
0x16, // ykw_b_waitc
0x0E, // ykw_b_floatb
0x18, // ykw_b_waitd
0x0A, // ykw_b_downa
0x0B, // ykw_b_downb
0x0C, // ykw_b_downc
0x09, // ykw_b_down
BCK_YKW_B_ANGRY,
BCK_YKW_B_ANGRY_WAIT,
BCK_YKW_B_FLOAT,
BCK_YKW_B_TALKA,
BCK_YKW_B_TALKB,
BCK_YKW_B_TO_TALKB,
BCK_YKW_B_WAITA,
BCK_YKW_B_WAITB,
BCK_YKW_B_WALK,
BCK_YKW_B_SCREAM,
BCK_YKW_B_SCREAM_WAIT,
BCK_YKW_B_WAITC2,
BCK_YKW_B_WAITC,
BCK_YKW_B_FLOATB,
BCK_YKW_B_WAITD,
BCK_YKW_B_DOWNA,
BCK_YKW_B_DOWNB,
BCK_YKW_B_DOWNC,
BCK_YKW_B_DOWN,
};
/* 80639BAC-80639BF8 00014C 004C+00 0/1 0/0 0/0 .data yo_demo_btk_idx */
static int yo_demo_btk_idx[19] = {
0x2A, // ykw_b_angry
BTK_YKW_B_ANGRY,
0xFF, // <none>
0x2C, // ykw_b_float
0x2F, // ykw_b_talka
0x30, // ykw_b_talkb
0x31, // ykw_b_to_talkb
0x32, // ykw_b_waita
0x33, // ykw_b_waitb
0x34, // ykw_b_walk
0x2D, // ykw_b_scream
0x2E, // ykw_b_scream_wait
0x34, // ykw_b_walk
0x34, // ykw_b_walk
0x34, // ykw_b_walk
0x34, // ykw_b_walk
0x2B, // ykw_b_down
0x2B, // ykw_b_down
0x2B, // ykw_b_down
0x32, // ykw_b_waita
BTK_YKW_B_FLOAT,
BTK_YKW_B_TALKA,
BTK_YKW_B_TALKB,
BTK_YKW_B_TO_TALKB,
BTK_YKW_B_WAITA,
BTK_YKW_B_WAITB,
BTK_YKW_B_WALK,
BTK_YKW_B_SCREAM,
BTK_YKW_B_SCREAM_WAIT,
BTK_YKW_B_WALK,
BTK_YKW_B_WALK,
BTK_YKW_B_WALK,
BTK_YKW_B_WALK,
BTK_YKW_B_DOWN,
BTK_YKW_B_DOWN,
BTK_YKW_B_DOWN,
BTK_YKW_B_WAITA,
};
/* 80639BF8-80639C44 000198 004C+00 0/1 0/0 0/0 .data yo_demo_btp_idx */
static int yo_demo_btp_idx[19] = {
0x38, // ykw_b_angry
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x3C, // ykw_b_talka
0x3D, // ykw_b_talkb
0x3E, // ykw_b_to_talkb
0x3A, // ykw_b_faceb
0x39, // ykw_b_facea
0x3A, // ykw_b_faceb
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x39, // ykw_b_facea
0x3A, // ykw_b_faceb
BTP_YKW_B_ANGRY,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_TALKA,
BTP_YKW_B_TALKB,
BTP_YKW_B_TO_TALKB,
BTP_YKW_B_FACEB,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEB,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEA,
BTP_YKW_B_FACEB,
};
/* 8062F46C-8062F51C 0000EC 00B0+00 1/1 0/0 0/0 .text __ct__12daB_YO_HIO_cFv */
@ -447,13 +419,13 @@ void daB_YO_c::setBck(int i_anm, u8 i_attr, f32 i_morf, f32 i_rate) {
int brk_idx;
if (i_anm == ANM_ANGRY) {
field_0xfcc = true;
brk_idx = 0x25;
brk_idx = BRK_YKW_B_ANGRY;
} else if (i_anm == ANM_ANGRY_WAIT) {
brk_idx = 0x26;
brk_idx = BRK_YKW_B_ANGRY_WAIT;
} else if (field_0xfcc) {
brk_idx = 0x24;
brk_idx = BRK_YKW_B;
} else {
brk_idx = 0x25;
brk_idx = BRK_YKW_B_ANGRY;
}
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_YO", brk_idx);
mpYetaBrkAnm->init(model_data, brk, TRUE, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1);
@ -3158,27 +3130,27 @@ static int daB_YO_Delete(daB_YO_c* i_this) {
/* 806380F8-80638838 008D78 0740+00 1/1 0/0 0/0 .text CreateHeap__8daB_YO_cFv */
int daB_YO_c::CreateHeap() {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", 0x1d);
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", BMDE_YO01);
mpModel[0] = mDoExt_J3DModel__create(model_data, 0, 0x11000284);
if (mpModel[0] == NULL) {
return 0;
}
model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", 0x1e);
model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", BMDE_YO02);
mpModel[1] = mDoExt_J3DModel__create(model_data, 0, 0x11000284);
if (mpModel[1] == NULL) {
return 0;
}
model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", 0x1f);
model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", BMDE_YO_CORE);
mpModel[2] = mDoExt_J3DModel__create(model_data, 0, 0x11000284);
if (mpModel[2] == NULL) {
return 0;
}
model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", 0x1c);
model_data = (J3DModelData*)dComIfG_getObjectRes("B_YO", BMDE_YKW_B);
mpYetaMorf = new mDoExt_McaMorfSO(
model_data, NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("B_YO", 0x14),
model_data, NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("B_YO", BCK_YKW_B_WAITA),
J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, &mCreatureSound, 0, 0x11020284
);
if (mpYetaMorf == NULL || mpYetaMorf->getModel() == NULL) {
@ -3189,7 +3161,7 @@ int daB_YO_c::CreateHeap() {
if (mpBtkAnm == NULL) {
return 0;
}
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_YO", 0x35);
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_YO", BTK_YO_KANNKYOU);
if (!mpBtkAnm->init(mpModel[0]->getModelData(), btk, FALSE,
J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1)) {
return 0;
@ -3200,7 +3172,7 @@ int daB_YO_c::CreateHeap() {
if (mpYetaBtkAnm == NULL) {
return 0;
}
btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_YO", 0x32);
btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_YO", BTK_YKW_B_WAITA);
if (!mpYetaBtkAnm->init(model_data, btk, TRUE, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1)) {
return 0;
}
@ -3209,7 +3181,7 @@ int daB_YO_c::CreateHeap() {
if (mpYetaBtpAnm == NULL) {
return 5;
}
J3DAnmTexPattern* btp = (J3DAnmTexPattern*)dComIfG_getObjectRes("B_YO", 0x3f);
J3DAnmTexPattern* btp = (J3DAnmTexPattern*)dComIfG_getObjectRes("B_YO", BTP_YKW_B_WAITA);
if (!mpYetaBtpAnm->init(model_data, btp, TRUE, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1)) {
return 5;
}
@ -3218,7 +3190,7 @@ int daB_YO_c::CreateHeap() {
if (mpYetaBrkAnm == NULL) {
return 0;
}
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_YO", 0x24);
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_YO", BRK_YKW_B);
if (!mpYetaBrkAnm->init(model_data, brk, TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1)) {
return 0;
}
@ -3227,7 +3199,7 @@ int daB_YO_c::CreateHeap() {
if (mpYetaWhiteBrkAnm == NULL) {
return 0;
}
brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_YO", 0x27);
brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_YO", BRK_YKW_B_WHITE);
if (!mpYetaWhiteBrkAnm->init(model_data, brk, TRUE, J3DFrameCtrl::EMode_NONE, 0.0f, 0, -1)) {
return 0;
}
@ -3236,13 +3208,13 @@ int daB_YO_c::CreateHeap() {
if (mpRoomNormalBgW == NULL) {
return 0;
}
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("L5_R50", 9);
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("L5_R50", DZB_R50_P1);
if (mpRoomNormalBgW->Set(dzb, 0, &mBgMtx) == 1) {
return 0;
}
mpRoomNormalBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", 4);
model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", BMDR_R50_P1);
mpRoomModel[0] = mDoExt_J3DModel__create(model_data, 0, 0x31000084);
if (mpRoomModel[0] == NULL) {
return 0;
@ -3252,19 +3224,19 @@ int daB_YO_c::CreateHeap() {
if (mpRoomArenaBgW == NULL) {
return 0;
}
dzb = (cBgD_t*)dComIfG_getObjectRes("L5_R50", 0xa);
dzb = (cBgD_t*)dComIfG_getObjectRes("L5_R50", DZB_R50_P2);
if (mpRoomArenaBgW->Set(dzb, 0, &mBgMtx) == 1) {
return 0;
}
mpRoomArenaBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", 5);
model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", BMDR_R50_P2);
mpRoomModel[1] = mDoExt_J3DModel__create(model_data, 0, 0x31000084);
if (mpRoomModel[1] == NULL) {
return 0;
}
model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", 6);
model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", BMDR_T_R50FURNITURE);
mpFurnitureModel = mDoExt_J3DModel__create(model_data, 0, 0x11000084);
if (mpFurnitureModel == NULL) {
return 0;
@ -3293,13 +3265,13 @@ int daB_YO_c::CreateHeap2() {
if (mpRoomNormalBgW == NULL) {
return 0;
}
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("L5_R50", 9);
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("L5_R50", DZB_R50_P1);
if (mpRoomNormalBgW->Set(dzb, 0, &mBgMtx) == 1) {
return 0;
}
mpRoomNormalBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", 4);
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("L5_R50", BMDR_R50_P1);
mpRoomModel[0] = mDoExt_J3DModel__create(model_data, 0, 0x31000084);
if (mpRoomModel[0] == NULL) {
return 0;

File diff suppressed because it is too large Load Diff

View File

@ -24,8 +24,7 @@ static int daB_ZANTM_Draw(daB_ZANTM_c* i_this) {
UNK_REL_DATA
namespace {
/* 80650508-80650554 000020 004C+00 0/1 0/0 0/0 .data
* cc_zant_src__30@unnamed@d_a_b_zant_magic_cpp@ */
/* 80650508-80650554 000020 004C+00 0/1 0/0 0/0 .data cc_zant_src__30@unnamed@d_a_b_zant_magic_cpp@ */
dCcD_SrcCps cc_zant_src = {
{
{0, {{AT_TYPE_CSTATUE_SWING, 2, 0x1D}, {0xD8FBFDFF, 0}, 0}},
@ -40,8 +39,7 @@ dCcD_SrcCps cc_zant_src = {
}},
};
/* 80650554-80650594 00006C 0040+00 0/1 0/0 0/0 .data
* cc_zant_src2__30@unnamed@d_a_b_zant_magic_cpp@ */
/* 80650554-80650594 00006C 0040+00 0/1 0/0 0/0 .data cc_zant_src2__30@unnamed@d_a_b_zant_magic_cpp@ */
dCcD_SrcSph cc_zant_src2 = {
{
{0x0, {{0x400, 0x2, 0x0}, {0x6000, 0x3}, 0x0}}, // mObj
@ -54,8 +52,7 @@ dCcD_SrcSph cc_zant_src2 = {
} // mSphAttr
};
/* 80650594-806505D4 0000AC 0040+00 0/1 0/0 0/0 .data
* cc_zant_src3__30@unnamed@d_a_b_zant_magic_cpp@ */
/* 80650594-806505D4 0000AC 0040+00 0/1 0/0 0/0 .data cc_zant_src3__30@unnamed@d_a_b_zant_magic_cpp@ */
dCcD_SrcSph cc_zant_src3 = {
{
{0x0, {{0x400, 0x2, 0x0}, {0x2, 0x3}, 0x0}}, // mObj

View File

@ -4,6 +4,7 @@
*/
#include "d/actor/d_a_b_zant_mobile.h"
#include "d/actor/d_a_b_zant.h"
#include "d/d_com_inf_game.h"
#include "d/d_cc_uty.h"
#include "d/actor/d_a_player.h"
@ -11,8 +12,7 @@
#include <cmath.h>
namespace {
/* 806527DC-8065281C 000000 0040+00 1/1 0/0 0/0 .data
* cc_zant_src__31@unnamed@d_a_b_zant_mobile_cpp@ */
/* 806527DC-8065281C 000000 0040+00 1/1 0/0 0/0 .data cc_zant_src__31@unnamed@d_a_b_zant_mobile_cpp@ */
dCcD_SrcSph cc_zant_src = {
{
{0x0, {{0x0, 0x1, 0x0}, {0xD8FBFDFF, 0x3}, 0x55}}, // mObj
@ -25,8 +25,7 @@ dCcD_SrcSph cc_zant_src = {
} // mSphAttr
};
/* 8065281C-80652860 000040 0044+00 1/1 0/0 0/0 .data
* cc_zant_snort_src__31@unnamed@d_a_b_zant_mobile_cpp@ */
/* 8065281C-80652860 000040 0044+00 1/1 0/0 0/0 .data cc_zant_snort_src__31@unnamed@d_a_b_zant_mobile_cpp@ */
static dCcD_SrcCyl cc_zant_snort_src = {
{
{0, {{0x400, 0, 0}, {0xD8FBFDFF, 0}, 0x55}},
@ -126,13 +125,13 @@ void daB_ZANTZ_c::setMouthMode(u8 param_0) {
if (param_0 == 2) {
if (mMouthMode == 0 || mMouthMode == 1) {
mMouthMode = 2;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x43), J3DFrameCtrl::EMode_NONE, 0.0f, 1.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_CLOSE), J3DFrameCtrl::EMode_NONE, 0.0f, 1.0f, 0.0f, -1.0f);
Z2GetAudioMgr()->seStart(Z2SE_EN_ZZ_CLOSE, &current.pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
} else if (param_0 == 0) {
if (mMouthMode == 2 || mMouthMode == 3) {
mMouthMode = 0;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x44), J3DFrameCtrl::EMode_NONE, 0.0f, 1.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_OPEN), J3DFrameCtrl::EMode_NONE, 0.0f, 1.0f, 0.0f, -1.0f);
Z2GetAudioMgr()->seStart(Z2SE_EN_ZZ_OPEN, &current.pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
}
@ -145,14 +144,14 @@ void daB_ZANTZ_c::setAppearMode(u8 param_0) {
if (param_0 == 2) {
if (mAppearMode == 0 || mAppearMode == 1) {
mAppearMode = 2;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x42), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_APPEARANCE), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
field_0x660 = 1.0f;
dComIfGp_getVibration().StartQuake(1, 31, cXyz(0.0f, 1.0f, 0.0f));
}
} else if (param_0 == 0) {
if (mAppearMode == 2 || mAppearMode == 3) {
mAppearMode = 0;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x42), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_APPEARANCE), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
field_0x660 = 1.0f;
dComIfGp_getVibration().StartQuake(1, 31, cXyz(0.0f, 1.0f, 0.0f));
@ -174,7 +173,7 @@ void daB_ZANTZ_c::setAppearMode(u8 param_0) {
if (mAppearMode == 1) {
if (abs((s16)(fopAcM_searchPlayerAngleY(this) - shape_angle.y)) > 0x1800) {
mAppearMode = 4;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x42), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_APPEARANCE), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
field_0x660 = 1.0f;
dComIfGp_getVibration().StartQuake(1, 31, cXyz(0.0f, 1.0f, 0.0f));
}
@ -183,7 +182,7 @@ void daB_ZANTZ_c::setAppearMode(u8 param_0) {
if (mAppearMode == 1) {
mAppearMode = 5;
mSearchContinue = true;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x42), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_APPEARANCE), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f);
field_0x660 = 1.0f;
dComIfGp_getVibration().StartQuake(1, 31, cXyz(0.0f, 1.0f, 0.0f));
}
@ -262,7 +261,7 @@ void daB_ZANTZ_c::action() {
if (!var_f31) {
dComIfGp_getVibration().StopQuake(0x1F);
mAppearMode++;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x44), J3DFrameCtrl::EMode_LOOP, 0.0f, 0.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_OPEN), J3DFrameCtrl::EMode_LOOP, 0.0f, 0.0f, 0.0f, -1.0f);
}
break;
}
@ -285,7 +284,7 @@ void daB_ZANTZ_c::action() {
if (!var_f31) {
dComIfGp_getVibration().StopQuake(0x1F);
mAppearMode++;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x44), J3DFrameCtrl::EMode_LOOP, 0.0f, 0.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_OPEN), J3DFrameCtrl::EMode_LOOP, 0.0f, 0.0f, 0.0f, -1.0f);
}
break;
}
@ -317,7 +316,7 @@ void daB_ZANTZ_c::action() {
if (!field_0x660) {
dComIfGp_getVibration().StopQuake(0x1F);
mAppearMode = 1;
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x44), J3DFrameCtrl::EMode_LOOP, 0.0f, 0.0f, 0.0f, -1.0f);
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_OPEN), J3DFrameCtrl::EMode_LOOP, 0.0f, 0.0f, 0.0f, -1.0f);
}
} else {
cLib_chaseF(&field_0x660, 1.0f, 0.2f);
@ -420,10 +419,10 @@ static int daB_ZANTZ_Delete(daB_ZANTZ_c* i_this) {
/* 80651DC4-80651FD0 001724 020C+00 1/1 0/0 0/0 .text CreateHeap__11daB_ZANTZ_cFv */
int daB_ZANTZ_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("B_zan", 0x4C);
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BMDR_ZZ);
JUT_ASSERT(0, modelData != 0);
mpMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("B_zan", 0x44), 0, 0.0f, 0, -1, &mSound, 0, 0x11000084);
mpMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BCK_ZZ_OPEN), 0, 0.0f, 0, -1, &mSound, 0, 0x11000084);
if (mpMorf == NULL) {
return 0;
}
@ -433,7 +432,7 @@ int daB_ZANTZ_c::CreateHeap() {
return 0;
}
if (!mpBrk->init(mpMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_zan", 0x50), TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1)) {
if (!mpBrk->init(mpMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::BRK_ZZ), TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1)) {
return 0;
}
@ -442,7 +441,7 @@ int daB_ZANTZ_c::CreateHeap() {
return 0;
}
if (mpBgW->Set((cBgD_t*)dComIfG_getObjectRes("B_zan", 0x57), 1, &mBgMtx) == 1) {
if (mpBgW->Set((cBgD_t*)dComIfG_getObjectRes("B_zan", daB_ZANT_c::DZB_ZZ), 1, &mBgMtx) == 1) {
return 0;
}

View File

@ -5,13 +5,14 @@
#include "d/actor/d_a_b_zant_sima.h"
#include "SSystem/SComponent/c_math.h"
#include "d/actor/d_a_obj_msima.h"
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#define TIMER_PLAYER 0
#define TIMER_ZANT 1
/* 806529D8-80652AAC 000078 00D4+00 1/1 0/0 0/0 .text draw__11daB_ZANTS_cFv */
/* 806529D8-80652AAC 000078 00D4+00 1/1 0/0 0/0 .text draw__11daB_ZANTS_cFv */
int daB_ZANTS_c::draw() {
g_env_light.settingTevStruct(16, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
@ -24,13 +25,12 @@ int daB_ZANTS_c::draw() {
return 1;
}
/* 80652AAC-80652ACC 00014C 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Draw__FP11daB_ZANTS_c */
/* 80652AAC-80652ACC 00014C 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Draw__FP11daB_ZANTS_c */
static int daB_ZANTS_Draw(daB_ZANTS_c* i_this) {
return i_this->draw();
}
/* 80652ACC-80652B28 00016C 005C+00 1/1 0/0 0/0 .text
* zants_ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
/* 80652ACC-80652B28 00016C 005C+00 1/1 0/0 0/0 .text zants_ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
static void zants_ride_call_back(dBgW* i_bgw, fopAc_ac_c* i_this, fopAc_ac_c* i_target) {
if (fopAcM_GetName(i_target) == PROC_ALINK) {
((daB_ZANTS_c*)i_this)->mPlayerID = fopAcM_GetID(i_target);
@ -41,7 +41,7 @@ static void zants_ride_call_back(dBgW* i_bgw, fopAc_ac_c* i_this, fopAc_ac_c* i_
}
}
/* 80652B28-80652DA8 0001C8 0280+00 1/1 0/0 0/0 .text action__11daB_ZANTS_cFv */
/* 80652B28-80652DA8 0001C8 0280+00 1/1 0/0 0/0 .text action__11daB_ZANTS_cFv */
void daB_ZANTS_c::action() {
daPy_py_c* player = daPy_getPlayerActorClass();
if (player->checkMagneBootsOn()) {
@ -104,7 +104,7 @@ void daB_ZANTS_c::action() {
}
}
/* 80652DA8-80652E98 000448 00F0+00 1/1 0/0 0/0 .text execute__11daB_ZANTS_cFv */
/* 80652DA8-80652E98 000448 00F0+00 1/1 0/0 0/0 .text execute__11daB_ZANTS_cFv */
int daB_ZANTS_c::execute() {
mpBrkAnm->play();
mpBtkAnm->play();
@ -126,17 +126,17 @@ int daB_ZANTS_c::execute() {
return 1;
}
/* 80652E98-80652EB8 000538 0020+00 2/1 0/0 0/0 .text daB_ZANTS_Execute__FP11daB_ZANTS_c */
/* 80652E98-80652EB8 000538 0020+00 2/1 0/0 0/0 .text daB_ZANTS_Execute__FP11daB_ZANTS_c */
static int daB_ZANTS_Execute(daB_ZANTS_c* i_this) {
return i_this->execute();
}
/* 80652EB8-80652EC0 000558 0008+00 1/0 0/0 0/0 .text daB_ZANTS_IsDelete__FP11daB_ZANTS_c */
/* 80652EB8-80652EC0 000558 0008+00 1/0 0/0 0/0 .text daB_ZANTS_IsDelete__FP11daB_ZANTS_c */
static int daB_ZANTS_IsDelete(daB_ZANTS_c* i_this) {
return 1;
}
/* 80652EC0-80652F18 000560 0058+00 1/1 0/0 0/0 .text _delete__11daB_ZANTS_cFv */
/* 80652EC0-80652F18 000560 0058+00 1/1 0/0 0/0 .text _delete__11daB_ZANTS_cFv */
int daB_ZANTS_c::_delete() {
dComIfG_resDelete(&mPhase, "MAGNESIMA");
if (mpBgW != NULL) {
@ -145,14 +145,14 @@ int daB_ZANTS_c::_delete() {
return 1;
}
/* 80652F18-80652F38 0005B8 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Delete__FP11daB_ZANTS_c */
/* 80652F18-80652F38 0005B8 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Delete__FP11daB_ZANTS_c */
static int daB_ZANTS_Delete(daB_ZANTS_c* i_this) {
return i_this->_delete();
}
/* 80652F38-80653180 0005D8 0248+00 1/1 0/0 0/0 .text CreateHeap__11daB_ZANTS_cFv */
/* 80652F38-80653180 0005D8 0248+00 1/1 0/0 0/0 .text CreateHeap__11daB_ZANTS_cFv */
int daB_ZANTS_c::CreateHeap() {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("MAGNESIMA", 7);
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("MAGNESIMA", obj_msima_class::BMDR_S_MAGNE_SIMA);
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
if (mpModel == NULL) {
return FALSE;
@ -163,7 +163,7 @@ int daB_ZANTS_c::CreateHeap() {
return FALSE;
}
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("MAGNESIMA", 13);
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("MAGNESIMA", obj_msima_class::BTK_S_MAGNE_SIMA);
if (!mpBtkAnm->init(mpModel->getModelData(), pbtk, TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0,
-1))
{
@ -175,7 +175,7 @@ int daB_ZANTS_c::CreateHeap() {
return FALSE;
}
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("MAGNESIMA", 10);
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("MAGNESIMA", obj_msima_class::BRK_S_MAGNE_SIMA);
if (!mpBrkAnm->init(mpModel->getModelData(), pbrk, TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0,
-1))
{
@ -187,7 +187,7 @@ int daB_ZANTS_c::CreateHeap() {
return FALSE;
}
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("MAGNESIMA", 16);
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("MAGNESIMA", obj_msima_class::DZB_S_MAGNE_SIMA);
if (mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &mMtx)) {
return FALSE;
}
@ -197,12 +197,12 @@ int daB_ZANTS_c::CreateHeap() {
return TRUE;
}
/* 806531C8-806531E8 000868 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
/* 806531C8-806531E8 000868 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static int useHeapInit(fopAc_ac_c* i_this) {
return static_cast<daB_ZANTS_c*>(i_this)->CreateHeap();
}
/* 806531E8-80653304 000888 011C+00 1/1 0/0 0/0 .text create__11daB_ZANTS_cFv */
/* 806531E8-80653304 000888 011C+00 1/1 0/0 0/0 .text create__11daB_ZANTS_cFv */
int daB_ZANTS_c::create() {
fopAcM_SetupActor(this, daB_ZANTS_c);
@ -227,7 +227,7 @@ int daB_ZANTS_c::create() {
return phase_state;
}
/* 80653304-80653324 0009A4 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Create__FP11daB_ZANTS_c */
/* 80653304-80653324 0009A4 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Create__FP11daB_ZANTS_c */
static int daB_ZANTS_Create(daB_ZANTS_c* i_this) {
return i_this->create();
}

View File

@ -13,8 +13,7 @@
#include "d/d_msg_object.h"
#include "d/d_s_play.h"
/* 8067C7CC-8067C874 0000EC 00A8+00 1/0 0/0 0/0 .text daE_ARROW_Draw__FP13e_arrow_class
*/
/* 8067C7CC-8067C874 0000EC 00A8+00 1/0 0/0 0/0 .text daE_ARROW_Draw__FP13e_arrow_class */
static int daE_ARROW_Draw(e_arrow_class* i_this) {
if (i_this->field_0xa14) {
return 1;

View File

@ -7,8 +7,6 @@
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
#include "dol2asm.h"
#include <cmath.h>
#define ACTION_MODE_WAIT 0
@ -17,9 +15,32 @@
#define ACTION_MODE_HURT 3
#define ACTION_MODE_DIE 4
//
// Declarations:
//
enum E_DK_RES_FILE_ID {
/* BCK */
/* 0x06 */ BCK_DK_ATTACK = 6,
/* 0x07 */ BCK_DK_CHARGE,
/* 0x08 */ BCK_DK_C_ATTACK,
/* 0x09 */ BCK_DK_C_CHARGE,
/* 0x0A */ BCK_DK_C_DEAD,
/* 0x0B */ BCK_DK_C_GUARD,
/* 0x0C */ BCK_DK_C_WAIT,
/* 0x0D */ BCK_DK_GUARD,
/* 0x0E */ BCK_DK_SHELLDEAD,
/* 0x0F */ BCK_DK_WAIT,
/* BMDR */
/* 0x12 */ BMDR_DK = 0x12,
/* 0x13 */ BMDR_DK_CORE,
/* BRK */
/* 0x16 */ BRK_DK_ATTACK = 0x16,
/* 0x17 */ BRK_DK_WAIT,
/* BTK */
/* 0x1A */ BTK_DK_ATTACK = 0x1A,
/* 0x1B */ BTK_DK_WAIT,
};
UNK_REL_DATA;
@ -62,8 +83,8 @@ daE_DK_HIO_c::daE_DK_HIO_c() {
first_attack_range = 1000.0f;
}
static u32 const dk_brk_name[2] = { 0x17, 0x16 };
static u32 const dk_btk_name[2] = { 0x1B, 0x1A };
static u32 const dk_brk_name[2] = { BRK_DK_WAIT, BRK_DK_ATTACK };
static u32 const dk_btk_name[2] = { BTK_DK_WAIT, BTK_DK_ATTACK };
/* 806AA228-806AA5A8 000128 0380+00 1/1 0/0 0/0 .text draw__8daE_DK_cFv */
int daE_DK_c::draw() {
@ -141,7 +162,7 @@ static int daE_DK_Draw(daE_DK_c* i_this) {
/* 806AA5C8-806AA68C 0004C8 00C4+00 5/5 0/0 0/0 .text setBck__8daE_DK_cFiUcff */
void daE_DK_c::setBck(int i_resIndex, u8 i_attr, f32 i_morf, f32 i_rate) {
field_0x6a0 = 0;
if (i_resIndex == 7 || i_resIndex == 6) {
if (i_resIndex == BCK_DK_CHARGE || i_resIndex == BCK_DK_ATTACK) {
field_0x6a0 = 1;
}
@ -388,8 +409,8 @@ void daE_DK_c::executeWait() {
cXyz dirFromHome;
switch (mMoveMode) {
case 0: {
setBck(0xf, 2, 3.0f, 1.0f);
setBckCore(0xc, 2, 3.0f, 1.0f);
setBck(BCK_DK_WAIT, 2, 3.0f, 1.0f);
setBckCore(BCK_DK_C_WAIT, 2, 3.0f, 1.0f);
mMoveMode = 1;
break;
}
@ -453,8 +474,8 @@ void daE_DK_c::executeChase() {
cXyz dirFromHome;
switch (mMoveMode) {
case 0: {
setBck(0xf, 2, 3.0f, 1.0f);
setBckCore(0xc, 2, 3.0f, 1.0f);
setBck(BCK_DK_WAIT, 2, 3.0f, 1.0f);
setBckCore(BCK_DK_C_WAIT, 2, 3.0f, 1.0f);
mMoveMode = 1;
break;
}
@ -517,8 +538,8 @@ void daE_DK_c::executeChase() {
void daE_DK_c::executeAttack() {
switch (mMoveMode) {
case 0: {
setBck(7, 2, 6.0f, 2.0f);
setBckCore(9, 2, 3.0f, 2.0f);
setBck(BCK_DK_CHARGE, 2, 6.0f, 2.0f);
setBckCore(BCK_DK_C_CHARGE, 2, 3.0f, 2.0f);
field_0x698 = 45 + nREG_S(9);
mMoveMode = 1;
break;
@ -530,8 +551,8 @@ void daE_DK_c::executeAttack() {
cLib_chaseF(&speed.y, -3.0f, 0.2f);
cLib_chaseF(&speedF, 0.0f, 0.2f);
if (field_0x698 == 0) {
setBck(6, 2, 3.0f, 1.0f);
setBckCore(8, 2, 3.0f, 1.0f);
setBck(BCK_DK_ATTACK, 2, 3.0f, 1.0f);
setBckCore(BCK_DK_C_ATTACK, 2, 3.0f, 1.0f);
field_0x698 = 100;
mMoveMode = 2;
}
@ -581,8 +602,8 @@ void daE_DK_c::executeDamage() {
shape_angle.x = 0xf000;
setBck(13, 0, 3.0f, 1.0f);
setBckCore(11, 0, 3.0f, 1.0f);
setBck(BCK_DK_GUARD, 0, 3.0f, 1.0f);
setBckCore(BCK_DK_C_GUARD, 0, 3.0f, 1.0f);
shape_angle.y = mAtInfo.mHitDirection.y;
current.angle.y = mAtInfo.mHitDirection.y + 0x8000;
@ -641,8 +662,8 @@ void daE_DK_c::executeDeath() {
case 1: {
setBodyDeadEffect();
setBck(14, 0, 3.0f, 0.0f);
setBckCore(10, 0, 3.0f, 0.0f);
setBck(BCK_DK_SHELLDEAD, 0, 3.0f, 0.0f);
setBckCore(BCK_DK_C_DEAD, 0, 3.0f, 0.0f);
field_0x6a2 = 1;
@ -947,10 +968,10 @@ static int daE_DK_Delete(daE_DK_c* i_this) {
/* 806ACAA4-806ACDAC 0029A4 0308+00 1/1 0/0 0/0 .text CreateHeap__8daE_DK_cFv */
int daE_DK_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_DK", 0x12);
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_DK", BMDR_DK);
JUT_ASSERT(1488, modelData != NULL);
mpMorfSO = new mDoExt_McaMorfSO(modelData, NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes("E_DK", 0xf), 0, 1.0f, 0,
(J3DAnmTransform*)dComIfG_getObjectRes("E_DK", BCK_DK_WAIT), 0, 1.0f, 0,
-1, &mCreatureSound, 0x80000, 0x31000284);
if (mpMorfSO == NULL || mpMorfSO->getModel() == NULL) {
@ -983,10 +1004,10 @@ int daE_DK_c::CreateHeap() {
}
}
modelData = (J3DModelData*)dComIfG_getObjectRes("E_DK", 0x13);
modelData = (J3DModelData*)dComIfG_getObjectRes("E_DK", BMDR_DK_CORE);
JUT_ASSERT(1537, modelData != NULL);
mpCoreMorfSO = new mDoExt_McaMorfSO(modelData, NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes("E_DK", 0xc), 0,
(J3DAnmTransform*)dComIfG_getObjectRes("E_DK", BCK_DK_C_WAIT), 0,
1.0f, 0, -1, &mCreatureSound, 0x80000, 0x11000084);
if (mpCoreMorfSO == NULL || mpCoreMorfSO->getModel() == NULL) {

View File

@ -13,6 +13,78 @@
#include "f_op/f_op_msg_mng.h"
#include "Z2AudioLib/Z2Instances.h"
enum E_FM_RES_FILE_ID {
/* BCK */
/* 0x07 */ BCK_EF_FMATTACK_A = 7,
/* 0x08 */ BCK_EF_FMATTACK_B,
/* 0x09 */ BCK_FM_ANIMAL,
/* 0x0A */ BCK_FM_ANIMAL02,
/* 0x0B */ BCK_FM_ATTACK,
/* 0x0C */ BCK_FM_ATTACK02,
/* 0x0D */ BCK_FM_BREAKCHAINL,
/* 0x0E */ BCK_FM_BREAKCHAINR,
/* 0x0F */ BCK_FM_CHANCE,
/* 0x10 */ BCK_FM_CHANCEDAMAGE,
/* 0x11 */ BCK_FM_DAMAGEWALK,
/* 0x12 */ BCK_FM_DAMAGE_L,
/* 0x13 */ BCK_FM_DAMAGE_R,
/* 0x14 */ BCK_FM_DEAD,
/* 0x15 */ BCK_FM_DEMOEND01,
/* 0x16 */ BCK_FM_DEMOEND02,
/* 0x17 */ BCK_FM_DEMOEND03,
/* 0x18 */ BCK_FM_DOWN,
/* 0x19 */ BCK_FM_DOWN02,
/* 0x1A */ BCK_FM_DOWNDAMAGE,
/* 0x1B */ BCK_FM_DOWNFR,
/* 0x1C */ BCK_FM_DOWNWAIT,
/* 0x1D */ BCK_FM_HANGWAIT,
/* 0x1E */ BCK_FM_KYORO2,
/* 0x1F */ BCK_FM_OPDEMO,
/* 0x20 */ BCK_FM_UP,
/* 0x21 */ BCK_FM_UP02,
/* 0x22 */ BCK_FM_WAIT01,
/* 0x23 */ BCK_FM_WALK,
/* 0x24 */ BCK_FM_WALK02,
/* BMDE */
/* 0x27 */ BMDE_FM_CORE = 0x27,
/* BMDR */
/* 0x2A */ BMDR_EF_FMATTACK_A = 0x2A,
/* 0X2B */ BMDR_EF_FMATTACK_B,
/* 0x2C */ BMDR_FM,
/* 0x2D */ BMDR_HANDLE,
/* 0x2E */ BMDR_KUSARI,
/* BRK */
/* 0x31 */ BRK_CORE_LIGHTON = 0x31,
/* 0x32 */ BRK_EF_FMATTACK_B,
/* 0x33 */ BRK_FM,
/* 0x34 */ BRK_FM_ANIMAL02,
/* 0x35 */ BRK_FM_ATTACK,
/* 0x36 */ BRK_FM_DEMOEND01,
/* 0x37 */ BRK_FM_DEMOEND02,
/* 0x38 */ BRK_FM_DEMOEND03,
/* 0x39 */ BRK_FM_HANGWAIT,
/* 0x3A */ BRK_FM_OPDEMO,
/* 0x3B */ BRK_FM_PUTOUT,
/* 0x3C */ BRK_FM_PUTOUTWAIT,
/* BTK */
/* 0x3F */ BTK_CORE_BEAT = 0x3F,
/* 0x40 */ BTK_EF_FMATTACK_A,
/* 0x41 */ BTK_EF_FMATTACK_B,
/* 0x42 */ BTK_FM,
/* 0x43 */ BTK_FM_ANIMAL02,
/* 0x44 */ BTK_FM_ATTACK,
/* 0x45 */ BTK_FM_DEMOEND01,
/* 0x46 */ BTK_FM_DEMOEND02,
/* 0x47 */ BTK_FM_HANGWAIT,
/* 0x48 */ BTK_FM_OPDEMO,
/* 0x49 */ BTK_FM_PUTOUT,
/* 0x4A */ BTK_FM_PUTOUTWAIT,
};
enum daE_FM_ACTION {
ACTION_NORMAL,
ACTION_FIGHT_RUN,
@ -474,7 +546,7 @@ static void e_fm_normal(e_fm_class* i_this) {
}
i_this->field_0x5c4 = i_this->current.angle.y + sp8;
anm_init(i_this, 0x23, 20.0f, 2, l_HIO.field_0xc);
anm_init(i_this, BCK_FM_WALK, 20.0f, 2, l_HIO.field_0xc);
i_this->mMode = 1;
i_this->mTimers[0] = 100.0f + cM_rndF(100.0f);
} else {
@ -510,7 +582,7 @@ static void e_fm_normal(e_fm_class* i_this) {
if (i_this->mTimers[0] == 0) {
i_this->mMode = 0;
i_this->mTimers[0] = 50.0f + cM_rndF(100.0f);
anm_init(i_this, 0x1E, 50.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_KYORO2, 50.0f, 2, 1.0f);
move_speed = 0.0f;
} else {
for (int i = 0; i < 2; i++) {
@ -538,13 +610,13 @@ static void e_fm_fight_run(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
i_this->mTimers[0] = 20.0f + cM_rndF(10.0f);
anm_init(i_this, 0x22, 30.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_WAIT01, 30.0f, 2, 1.0f);
i_this->mTimers[2] = l_HIO.field_0x40 + cM_rndF(0.5f * l_HIO.field_0x40);
i_this->mMode = 1;
/* fallthrough */
case 1:
if (i_this->mTimers[0] == 0) {
anm_init(i_this, 0x24, 30.0f, 2, l_HIO.field_0xc);
anm_init(i_this, BCK_FM_WALK02, 30.0f, 2, l_HIO.field_0xc);
i_this->mMode = 2;
}
break;
@ -618,7 +690,7 @@ static void e_fm_fight_run(e_fm_class* i_this) {
if (do_f_fight) {
i_this->mAction = ACTION_F_FIGHT;
i_this->mMode = 0;
anm_init(i_this, 0x22, 20.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_WAIT01, 20.0f, 2, 1.0f);
}
if (do_n_fight) {
@ -637,7 +709,7 @@ static void e_fm_n_fight(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0xC, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_ATTACK02, 10.0f, 0, 1.0f);
i_this->mSound.startCreatureSound(Z2SE_EN_FM_ATTACK02_CHAIN, 0, -1);
i_this->mMode = 1;
break;
@ -679,7 +751,7 @@ static void e_fm_n_fight(e_fm_class* i_this) {
if (i_this->mpFmModelMorf->isStop()) {
if (cM_rndF(1.0f) < 0.5f && pl_check(i_this, l_HIO.field_0x24 + TREG_F(11), 0x3000)) {
i_this->mAction = ACTION_FIRE;
anm_init(i_this, 0x22, 20.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_WAIT01, 20.0f, 2, 1.0f);
} else {
i_this->mAction = ACTION_NORMAL;
}
@ -730,7 +802,7 @@ static void e_fm_f_fight(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
if ((int)i_this->mpFmBtk[0]->getFrame() == 0) {
anm_init(i_this, 0xB, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_ATTACK, 10.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_ATTACK_TAME, -1);
i_this->mSound.startCreatureSound(Z2SE_EN_FM_ATTACK_TAME, 0, -1);
@ -804,7 +876,7 @@ static void animal_eff_set(e_fm_class* i_this, s16 param_1) {
static void e_fm_animal(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0xA, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_ANIMAL02, 10.0f, 0, 1.0f);
i_this->mMode = 1;
break;
case 1:
@ -827,7 +899,7 @@ static void e_fm_fire(e_fm_class* i_this) {
case 0:
if ((int)i_this->mpFmBtk[0]->getFrame() == 0) {
i_this->field_0x1830 = 0.0f;
anm_init(i_this, 9, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_ANIMAL, 10.0f, 0, 1.0f);
i_this->mMode = 1;
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_GAOO_SHORT, -1);
}
@ -932,7 +1004,7 @@ static void e_fm_damage_run(e_fm_class* i_this) {
case 0:
if (i_this->mpFmModelMorf->isStop()) {
i_this->mTimers[0] = l_HIO.field_0xa4 + cM_rndF(50.0f);
anm_init(i_this, 0x11, 5.0f, 2, 2.0f);
anm_init(i_this, BCK_FM_DAMAGEWALK, 5.0f, 2, 2.0f);
i_this->mMode = 1;
Z2GetAudioMgr()->changeBgmStatus(3);
}
@ -1017,7 +1089,7 @@ static void e_fm_damage_run(e_fm_class* i_this) {
}
if (((i_this->mTimers[0] < l_HIO.field_0xa4 - 250.0f) && i_this->field_0x809 != 0) || i_this->mTimers[0] == 0) {
anm_init(i_this, 0xA, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_ANIMAL02, 10.0f, 0, 1.0f);
i_this->mMode = 2;
i_this->mPlayTexAnmNo = TEXANM_ANIMAL;
i_this->mpFmBrk[TEXANM_ANIMAL]->setFrame(0.0f);
@ -1304,7 +1376,7 @@ static void demo_camera(e_fm_class* i_this) {
}
if (i_this->mDemoCamTimer == 60) {
anm_init(i_this, 0x1F, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_OPDEMO, 10.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_OPDEMO, -1);
i_this->mSound.startCreatureSound(Z2SE_EN_FM_OPDEMO, 0, -1);
@ -1521,7 +1593,7 @@ static void demo_camera(e_fm_class* i_this) {
i_this->mDemoCamCenter += actor->current.pos;
if (i_this->mDemoCamTimer == XREG_S(6) + 85) {
anm_init(i_this, 0x16, 1.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_DEMOEND02, 1.0f, 0, 1.0f);
i_this->mPlayTexAnmNo = TEXANM_DEMO_END02;
i_this->mpFmBrk[TEXANM_DEMO_END02]->setFrame(0.0f);
i_this->mpFmBtk[TEXANM_DEMO_END02]->setFrame(0.0f);
@ -1691,7 +1763,7 @@ static s8 e_fm_down(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x18, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_DOWN, 10.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_DOWN, -1);
i_this->mMode = 1;
i_this->field_0x7c0 = 2;
@ -1734,7 +1806,7 @@ static s8 e_fm_down(e_fm_class* i_this) {
}
if (i_this->mpFmModelMorf->isStop()) {
anm_init(i_this, 0x1C, 0.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_DOWNWAIT, 0.0f, 2, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = 33;
i_this->mTimers[1] = l_HIO.field_0x9c;
@ -1744,8 +1816,8 @@ static s8 e_fm_down(e_fm_class* i_this) {
case 2:
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[257]);
if (i_this->mAnm == 0x1A && i_this->mpFmModelMorf->isStop()) {
anm_init(i_this, 0x1C, 5.0f, 2, 1.0f);
if (i_this->mAnm == BCK_FM_DOWNDAMAGE && i_this->mpFmModelMorf->isStop()) {
anm_init(i_this, BCK_FM_DOWNWAIT, 5.0f, 2, 1.0f);
}
if (i_this->mTimers[0] == 1) {
@ -1765,7 +1837,7 @@ static s8 e_fm_down(e_fm_class* i_this) {
}
if (i_this->mTimers[1] == 0) {
anm_init(i_this, 0x20, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_UP, 10.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_UP, -1);
i_this->mMode = 3;
enemy->offDownFlg();
@ -1779,7 +1851,7 @@ static s8 e_fm_down(e_fm_class* i_this) {
sp8 = 0;
if (i_this->mpFmModelMorf->isStop()) {
anm_init(i_this, 0xA, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_ANIMAL02, 10.0f, 0, 1.0f);
i_this->mMode = 4;
i_this->mPlayTexAnmNo = TEXANM_ANIMAL;
i_this->mpFmBrk[TEXANM_ANIMAL]->setFrame(0.0f);
@ -1826,7 +1898,7 @@ static s8 e_fm_a_down(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x19, 15.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_DOWN02, 15.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_DOWN, -1);
i_this->mMode = 1;
break;
@ -1857,7 +1929,7 @@ static s8 e_fm_a_down(e_fm_class* i_this) {
}
if (i_this->mpFmModelMorf->isStop()) {
anm_init(i_this, 0x1C, 0.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_DOWNWAIT, 0.0f, 2, 1.0f);
i_this->mAction = ACTION_DOWN;
i_this->mMode = 2;
i_this->mTimers[0] = 33;
@ -1891,7 +1963,7 @@ static s8 e_fm_start(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x1D, 0.0f, 2, 1.0f);
anm_init(i_this, BCK_FM_HANGWAIT, 0.0f, 2, 1.0f);
i_this->mPlayTexAnmNo = TEXANM_HANG_WAIT;
i_this->mMode = 1;
i_this->mChain[3].field_0x617e = 1;
@ -1986,7 +2058,7 @@ static s8 e_fm_end(e_fm_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x15, 1.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_DEMOEND01, 1.0f, 0, 1.0f);
i_this->mMode = 1;
Z2GetAudioMgr()->bgmStop(0x1E, 0);
i_this->mPlayTexAnmNo = TEXANM_DEMO_END01;
@ -1997,7 +2069,7 @@ static s8 e_fm_end(e_fm_class* i_this) {
case 1:
break;
case 10:
anm_init(i_this, 0x15, 0.0f, 0, 0.0f);
anm_init(i_this, BCK_FM_DEMOEND01, 0.0f, 0, 0.0f);
i_this->mMode = 11;
i_this->mPlayTexAnmNo = TEXANM_DEMO_END01;
i_this->mpFmBrk[TEXANM_DEMO_END01]->setFrame(0.0f);
@ -2059,13 +2131,13 @@ static void damage_check(e_fm_class* i_this) {
carry_off(i_this, 2);
carry_off(i_this, 3);
} else {
anm_init(i_this, 0x21, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_UP02, 5.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_UP02, -1);
i_this->mMode = 3;
Z2GetAudioMgr()->changeBgmStatus(2);
}
} else {
anm_init(i_this, 0x1A, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_DOWNDAMAGE, 3.0f, 0, 1.0f);
i_this->mSound.startCreatureSound(Z2SE_EN_FM_FOOTNOTE, 0, -1);
}
@ -2082,7 +2154,7 @@ static void damage_check(e_fm_class* i_this) {
i_this->mDemoCamMode = 20;
} else {
i_this->mAction = ACTION_DAMAGE_RUN;
anm_init(i_this, 0x10, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_FM_CHANCEDAMAGE, 3.0f, 0, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_CHANCEDAMAGE, -1);
}
i_this->mMode = 0;
@ -2893,25 +2965,25 @@ static int daE_FM_Execute(e_fm_class* i_this) {
i_this->mpFmModelMorf->play(&actor->eyePos, 0, 0);
if (i_this->mAnm == 0x15 && i_this->mpFmModelMorf->checkFrame(1.0f)) {
if (i_this->mAnm == BCK_FM_DEMOEND01 && i_this->mpFmModelMorf->checkFrame(1.0f)) {
i_this->mSound.startCreatureSound(Z2SE_EN_FM_DEMOEND, 0, -1);
i_this->mSound.startCreatureSound(Z2SE_EN_FM_DEMOEND_CORE, 0, -1);
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_DEMOEND, -1);
} else if (i_this->mAnm == 0xF && i_this->mpFmModelMorf->checkFrame(20.0f)) {
} else if (i_this->mAnm == BCK_FM_CHANCE && i_this->mpFmModelMorf->checkFrame(20.0f)) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_CHANCE, -1);
} else if (i_this->mAnm == 0x11 && (i_this->mpFmModelMorf->checkFrame(1.0f) || i_this->mpFmModelMorf->checkFrame(30.0f))) {
} else if (i_this->mAnm == BCK_FM_DAMAGEWALK && (i_this->mpFmModelMorf->checkFrame(1.0f) || i_this->mpFmModelMorf->checkFrame(30.0f))) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_DAMAGEWALK, -1);
} else if (i_this->mAnm == 0x1C && i_this->mpFmModelMorf->checkFrame(5.0f)) {
} else if (i_this->mAnm == BCK_FM_DOWNWAIT && i_this->mpFmModelMorf->checkFrame(5.0f)) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_DOWNWAIT, -1);
} else if (i_this->mAnm == 0x1E && (i_this->mpFmModelMorf->checkFrame(1.0f) || i_this->mpFmModelMorf->checkFrame(30.0f))) {
} else if (i_this->mAnm == BCK_FM_KYORO2 && (i_this->mpFmModelMorf->checkFrame(1.0f) || i_this->mpFmModelMorf->checkFrame(30.0f))) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_KYORO, -1);
} else if (i_this->mAnm == 0x21 && i_this->mpFmModelMorf->checkFrame(145.0f)) {
} else if (i_this->mAnm == BCK_FM_UP02 && i_this->mpFmModelMorf->checkFrame(145.0f)) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_UP02_2, -1);
} else if (i_this->mAnm == 0x22 && i_this->mpFmModelMorf->checkFrame(13.0f)) {
} else if (i_this->mAnm == BCK_FM_WAIT01 && i_this->mpFmModelMorf->checkFrame(13.0f)) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_WAIT, -1);
} else if (i_this->mAnm == 0xA && i_this->mpFmModelMorf->checkFrame(1.0f)) {
} else if (i_this->mAnm == BCK_FM_ANIMAL02 && i_this->mpFmModelMorf->checkFrame(1.0f)) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_GAOO_LONG, -1);
} else if (i_this->mAnm == 0x1D && i_this->mpFmModelMorf->checkFrame(1.0f)) {
} else if (i_this->mAnm == BCK_FM_HANGWAIT && i_this->mpFmModelMorf->checkFrame(1.0f)) {
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_HANGWAIT, -1);
}
@ -3270,7 +3342,7 @@ static int daE_FM_Execute(e_fm_class* i_this) {
i_this->field_0x182c = 0;
}
if (i_this->mAnm == 0x15) {
if (i_this->mAnm == BCK_FM_DEMOEND01) {
int anm_frame = i_this->mpFmModelMorf->getFrame();
if (anm_frame == 90 || anm_frame == 120) {
dComIfGp_getVibration().StartShock(VIBMODE_S_POWER3, 1, cXyz(0.0f, 1.0f, 0.0f));
@ -3287,7 +3359,7 @@ static int daE_FM_Execute(e_fm_class* i_this) {
emitter->setGlobalRTMatrix(model->getAnmMtx(3));
}
}
} else if (i_this->mAnm == 0x1F) {
} else if (i_this->mAnm == BCK_FM_OPDEMO) {
i_this->field_0x2350 = dComIfGp_particle_set(i_this->field_0x2350, 0x872C, &actor->current.pos, NULL, NULL);
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(i_this->field_0x2350);
@ -3384,10 +3456,11 @@ static int daE_FM_Delete(e_fm_class* i_this) {
/* 804F8CE8-804F95CC 009CE8 08E4+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static int useHeapInit(fopAc_ac_c* i_this) {
// NONMATCHING - REGALLOC
J3DModelData* modelData;
e_fm_class* a_this = (e_fm_class*)i_this;
a_this->mpFmModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", 0x2C), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_fm", 0x22), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
a_this->mpFmModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_FM), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_fm", BCK_FM_WAIT01), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
if (a_this->mpFmModelMorf == NULL || a_this->mpFmModelMorf->getModel() == NULL) {
return 0;
}
@ -3414,7 +3487,10 @@ static int useHeapInit(fopAc_ac_c* i_this) {
anm_mode = 2;
}
static int brk[] = {0x33, 0x35, 0x3B, 0x3C, 0x34, 0x3A, 0x39, 0x36, 0x37};
static int brk[] = {
BRK_FM, BRK_FM_ATTACK, BRK_FM_PUTOUT, BRK_FM_PUTOUTWAIT, BRK_FM_ANIMAL02,
BRK_FM_OPDEMO, BRK_FM_HANGWAIT, BRK_FM_DEMOEND01, BRK_FM_DEMOEND02
};
if (!a_this->mpFmBrk[i]->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", brk[i]), 1, anm_mode, 1.0f, 0, -1)) {
return 0;
}
@ -3424,13 +3500,16 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
static int btk[] = {0x42, 0x44, 0x49, 0x4A, 0x43, 0x48, 0x47, 0x45, 0x46};
static int btk[] = {
BTK_FM, BTK_FM_ATTACK, BTK_FM_PUTOUT, BTK_FM_PUTOUTWAIT, BTK_FM_ANIMAL02,
BTK_FM_OPDEMO, BTK_FM_HANGWAIT, BTK_FM_DEMOEND01, BTK_FM_DEMOEND02
};
if (!a_this->mpFmBtk[i]->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", btk[i]), 1, anm_mode, 1.0f, 0, -1)) {
return 0;
}
}
a_this->mpDemoFmModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", 0x2C), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_fm", 0x17), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
a_this->mpDemoFmModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_FM), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_fm", BCK_FM_DEMOEND03), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
if (a_this->mpDemoFmModelMorf == NULL || a_this->mpDemoFmModelMorf->getModel() == NULL) {
return 0;
}
@ -3440,11 +3519,11 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpDemoFmBrk->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", 0x38), 1, 0, 1.0f, 0, -1)) {
if (!a_this->mpDemoFmBrk->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", BRK_FM_DEMOEND03), 1, 0, 1.0f, 0, -1)) {
return 0;
}
modelData = (J3DModelData*)dComIfG_getObjectRes("E_fm", 0x27);
modelData = (J3DModelData*)dComIfG_getObjectRes("E_fm", BMDE_FM_CORE);
JUT_ASSERT(7257, modelData != 0);
a_this->mpCoreModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
if (a_this->mpCoreModel == NULL) {
@ -3456,7 +3535,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpCoreBrk->init(a_this->mpCoreModel->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", 0x31), 1, 2, 1.0f, 0, -1)) {
if (!a_this->mpCoreBrk->init(a_this->mpCoreModel->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", BRK_CORE_LIGHTON), 1, 2, 1.0f, 0, -1)) {
return 0;
}
@ -3465,14 +3544,14 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpCoreBtk->init(a_this->mpCoreModel->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", 0x3F), 1, 0, 1.0f, 0, -1)) {
if (!a_this->mpCoreBtk->init(a_this->mpCoreModel->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", BTK_CORE_BEAT), 1, 0, 1.0f, 0, -1)) {
return 0;
}
a_this->mpCoreBtk->setPlaySpeed(0.0f);
for (int i = 0; i < 2; i++) {
static int eff_bmd[] = {0x2A, 0x2B};
static int eff_bmd[] = {BMDR_EF_FMATTACK_A, BMDR_EF_FMATTACK_B};
a_this->mpAttackEfModelMorf[i] = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", eff_bmd[i]), NULL, NULL, NULL, 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
if (a_this->mpAttackEfModelMorf[i] == NULL || a_this->mpAttackEfModelMorf[i]->getModel() == NULL) {
return 0;
@ -3484,7 +3563,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpAttackEfBrk->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", 0x32), 1, 2, 1.0f, 0, -1)) {
if (!a_this->mpAttackEfBrk->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", BRK_EF_FMATTACK_B), 1, 2, 1.0f, 0, -1)) {
return 0;
}
}
@ -3494,16 +3573,16 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
static int eff_btk[] = {0x40, 0x41};
static int eff_btk[] = {BTK_EF_FMATTACK_A, BTK_EF_FMATTACK_B};
if (!a_this->mpAttackEfBtk[i]->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", eff_btk[i]), 1, 2, 1.0f, 0, -1)) {
return 0;
}
}
modelData = (J3DModelData*)dComIfG_getObjectRes("E_fm", 0x2E);
modelData = (J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_KUSARI);
JUT_ASSERT(7404, modelData != 0);
J3DModelData* modelData2 = (J3DModelData*)dComIfG_getObjectRes("E_fm", 0x2D);
J3DModelData* modelData2 = (J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_HANDLE);
JUT_ASSERT(7408, modelData2 != 0);
for (int i = 0; i < 4; i++) {

View File

@ -10,34 +10,61 @@
#include "d/d_meter2_info.h"
#include "d/actor/d_a_tag_push.h"
UNK_REL_DATA;
//
// Declarations:
//
enum JAGAR_RES_FILE_ID {
/* BCK */
/* 0x06 */ BCK_JAGA_F_TALK_A = 6,
/* 0x07 */ BCK_JAGA_FH_TALK_A,
/* 0x08 */ BCK_JAGA_STEP,
/* 0x09 */ BCK_JAGA_TALK_B,
/* 0x0A */ BCK_JAGAR_WAIT_A,
/* ############################################################################################## */
/* BMDR */
/* 0x0D */ BMDR_JAGAR = 0xD,
/* 80A1A548-80A1A554 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* BTK */
/* 0x10 */ BTK_JAGA = 0x10,
/* BTP */
/* 0x13 */ BTP_JAGA = 0x13,
/* 0x14 */ BTP_JAGA_F_TALK_A,
/* 0x15 */ BTP_JAGA_FH_TALK_A,
};
/* 80A1A554-80A1A568 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 */] = {
0x02000201,
/* padding */
0x40080000,
0x00000000,
0x3FE00000,
0x00000000,
enum JAGAR1_RES_FILE_ID {
/* BCK */
/* 0x04 */ BCK_JAGA_CHU = 4,
/* 0x05 */ BCK_JAGA_CHU_TO_SIT,
/* 0x06 */ BCK_JAGA_F_SMILETALK,
/* 0x07 */ BCK_JAGA_SIT,
/* 0x08 */ BCK_JAGA_TO_CHU,
/* 0x09 */ BCK_JAGA_WAIT_B,
/* 0x0A */ BCK_JAGA_WAIT_TO_SIT,
/* EVT */
/* 0x0E */ EVT_EVENT_LIST = 0xE,
};
enum JAGAR3_RES_FILE_ID {
/* BCK */
/* 0x04 */ BCK_JAGA_F_TALK_B = 4,
/* 0x05 */ BCK_JAGA_FH_TALK_B,
/* 0x06 */ BCK_JAGA_TALK_A,
/* BTP */
/* 0x09 */ BTP_JAGA_F_TALK_B = 9,
/* 0x0A */ BTP_JAGA_FH_TALK_B,
};
enum JAGAR4_RES_FILE_ID {
/* BMDR */
/* 0x03 */ BMDR_JAGA_NOUGU = 3,
};
#pragma pop
/* 80A1A568-80A1A570 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */
static int l_bmdData[1][2] = {
{13, 1},
{BMDR_JAGAR, 1},
};
/* 80A1A570-80A1A5B8 -00001 0048+00 0/1 0/0 0/0 .data l_evtList */
@ -63,7 +90,6 @@ static char* l_resNameList[5] = {
};
/* 80A1A5CC-80A1A5D0 000084 0004+00 1/0 0/0 0/0 .data l_loadResPtrn0 */
// SECTION_DATA static u32 l_loadResPtrn0 = 0x010204FF;
static s8 l_loadResPtrn0[4] = {
1, 2, 4, -1,
};
@ -175,7 +201,6 @@ daNpc_Jagar_c::~daNpc_Jagar_c() {
deleteRes(l_loadResPtrnList[mType], (char const**)l_resNameList);
}
/* ############################################################################################## */
/* 80A1A330-80A1A3D0 000000 00A0+00 13/13 0/0 1/1 .rodata m__19daNpc_Jagar_Param_c */
daNpc_Jagar_Param_c::Data const daNpc_Jagar_Param_c::m = {
170.0f, -3.0f, 1.0f, 400.0f, 255.0f, 160.0f,
@ -282,20 +307,18 @@ int daNpc_Jagar_c::Draw() {
return daNpcT_c::draw(0, 0, field_0xde8, NULL, 100.0f, 0, 0, 0);
}
/* 80A15034-80A15054 000A14 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__13daNpc_Jagar_cFP10fopAc_ac_c */
/* 80A15034-80A15054 000A14 0020+00 1/1 0/0 0/0 .text createHeapCallBack__13daNpc_Jagar_cFP10fopAc_ac_c */
int daNpc_Jagar_c::createHeapCallBack(fopAc_ac_c* i_this) {
return static_cast<daNpc_Jagar_c*>(i_this)->CreateHeap();
}
/* 80A15054-80A150AC 000A34 0058+00 1/1 0/0 0/0 .text
* ctrlJointCallBack__13daNpc_Jagar_cFP8J3DJointi */
int daNpc_Jagar_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
if (param_1 == 0) {
/* 80A15054-80A150AC 000A34 0058+00 1/1 0/0 0/0 .text ctrlJointCallBack__13daNpc_Jagar_cFP8J3DJointi */
int daNpc_Jagar_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) {
if (param_2 == 0) {
J3DModel* model = j3dSys.getModel();
daNpc_Jagar_c* i_this = reinterpret_cast<daNpc_Jagar_c*>(model->getUserArea());
if (i_this != 0) {
i_this->ctrlJoint(param_0, model);
i_this->ctrlJoint(i_joint, model);
}
}
return 1;