mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
bomb nearly matching on demo, one regswap left
This commit is contained in:
@@ -234,6 +234,9 @@ public:
|
||||
void setGlobalParticleScale(const JGeometry::TVec3<f32>& scale) {
|
||||
mGlobalParticleScale.set(scale);
|
||||
}
|
||||
void setGlobalParticleScale(f32 scaleX, f32 scaleY) {
|
||||
mGlobalParticleScale.set(scaleX, scaleY, 1.0f);
|
||||
}
|
||||
void setGlobalDynamicsScale(const JGeometry::TVec3<f32>& scale) {
|
||||
mGlobalDynamicsScale.set(scale);
|
||||
}
|
||||
@@ -323,7 +326,6 @@ public:
|
||||
void loadTexture(u8, GXTexMapID) {}
|
||||
void setEmitterRotation(const JGeometry::TVec3<s16>&) {}
|
||||
void setGlobalParticleHeightScale(f32 y) { mGlobalParticleScale.y = y; }
|
||||
void setGlobalParticleScale(f32, f32) {}
|
||||
void setGlobalParticleWidthScale(f32) {}
|
||||
|
||||
static JPAEmitterInfo emtrInfo;
|
||||
|
||||
@@ -68,7 +68,9 @@ public:
|
||||
bool checkExplodeBg_nut();
|
||||
bool checkExplodeBg_cannon();
|
||||
bool checkExplodeBg();
|
||||
#if VERSION > VERSION_DEMO
|
||||
void water_tention();
|
||||
#endif
|
||||
void posMoveF();
|
||||
void bgCrrPos();
|
||||
void bgCrrPos_lava();
|
||||
@@ -171,13 +173,15 @@ private:
|
||||
/* 0x2B8 */ mDoExt_bckAnm mBck1;
|
||||
/* 0x2C8 */ mDoExt_brkAnm mBrk0;
|
||||
/* 0x2E0 */ mDoExt_brkAnm mBrk1;
|
||||
/* 0x2F8 */ s32 mType;
|
||||
/* 0x2F8 */ int mType;
|
||||
/* 0x2FC */ dBgS_BombAcch mAcch;
|
||||
/* 0x4C0 */ dBgS_AcchCir mCir;
|
||||
/* 0x500 */ dBgS_ObjGndChk_Yogan mGndChk;
|
||||
/* 0x554 */ f32 field_0x554;
|
||||
/* 0x558 */ f32 field_0x558;
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 0x55C */ f32 field_0x55C;
|
||||
#endif
|
||||
/* 0x560 */ bool field_0x560;
|
||||
/* 0x561 */ bool mbWaterIn;
|
||||
/* 0x562 */ u8 field_0x562;
|
||||
|
||||
@@ -148,14 +148,14 @@ public:
|
||||
void SetRoofNone() { m_flags |= ROOF_NONE; }
|
||||
void SetRoofHit() { m_flags |= ROOF_HIT; }
|
||||
void SetWaterNone() { m_flags |= WATER_NONE; }
|
||||
bool ChkWallHit() { return m_flags & WALL_HIT; }
|
||||
u32 ChkWallHit() { return m_flags & WALL_HIT; }
|
||||
void OffLineCheckHit() { m_flags &= ~LINE_CHECK_HIT; }
|
||||
void OnLineCheckHit() { m_flags |= LINE_CHECK_HIT; }
|
||||
void OffLineCheck() { m_flags &= ~LINE_CHECK; }
|
||||
void OffLineCheckNone() { m_flags &= ~LINE_CHECK_NONE; }
|
||||
void OnLineCheckNone() { m_flags |= LINE_CHECK_NONE; }
|
||||
bool ChkLineCheckNone() { return m_flags & LINE_CHECK_NONE; }
|
||||
bool ChkLineCheck() { return m_flags & LINE_CHECK; }
|
||||
u32 ChkLineCheckNone() { return m_flags & LINE_CHECK_NONE; }
|
||||
u32 ChkLineCheck() { return m_flags & LINE_CHECK; }
|
||||
void ClrRoofHit() { m_flags &= ~ROOF_HIT; }
|
||||
void ClrWaterHit() { m_flags &= ~WATER_HIT; }
|
||||
void SetWaterHit() { m_flags |= WATER_HIT; }
|
||||
|
||||
@@ -20,8 +20,9 @@ static BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
|
||||
/* 0000010C-00000324 .text CreateHeap__16daArrow_Iceeff_cFv */
|
||||
BOOL daArrow_Iceeff_c::CreateHeap() {
|
||||
J3DModelData* modelData;
|
||||
if(field_0xA38 == 0) {
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("Link", LINK_BDL_GICER00));
|
||||
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("Link", LINK_BDL_GICER00));
|
||||
JUT_ASSERT(87, modelData != NULL);
|
||||
for(int i = 0; i < 30; i++) {
|
||||
field_0x298[i] = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
|
||||
@@ -31,7 +32,7 @@ BOOL daArrow_Iceeff_c::CreateHeap() {
|
||||
}
|
||||
}
|
||||
else {
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("Link", LINK_BDL_GICER01));
|
||||
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("Link", LINK_BDL_GICER01));
|
||||
JUT_ASSERT(98, modelData != NULL);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
|
||||
if(mpModel == NULL) {
|
||||
@@ -262,8 +263,7 @@ bool daArrow_Iceeff_c::_execute() {
|
||||
if(field_0xA30 == 0x23) {
|
||||
JPABaseEmitter* ptcl = dComIfGp_particle_setSingleRipple(dPa_name::ID_COMMON_003D, ¤t.pos, NULL, &ripple_scale);
|
||||
if(ptcl) {
|
||||
JGeometry::TVec3<f32> scale(0.67f, 0.67f, 1.0f);
|
||||
ptcl->setGlobalParticleScale(scale);
|
||||
ptcl->setGlobalParticleScale(0.67f, 0.67f);
|
||||
}
|
||||
}
|
||||
else if(field_0xA30 == 0x28) {
|
||||
@@ -274,8 +274,7 @@ bool daArrow_Iceeff_c::_execute() {
|
||||
ptcl->setDirectionalSpeed(5.0f);
|
||||
JGeometry::TVec3<f32> scale1(0.5f, 1.0f, 0.5f);
|
||||
ptcl->setEmitterScale(scale1);
|
||||
JGeometry::TVec3<f32> scale2(0.33f, 0.33f, 1.0f);
|
||||
ptcl->setGlobalParticleScale(scale2);
|
||||
ptcl->setGlobalParticleScale(0.33f, 0.33f);
|
||||
}
|
||||
|
||||
dComIfGp_particle_setSingleRipple(dPa_name::ID_COMMON_003F, ¤t.pos, NULL, &ripple_scale);
|
||||
|
||||
@@ -481,7 +481,7 @@ static BOOL useHeapInit(fopAc_ac_c* a_this) {
|
||||
if (i_this->m298 == 2) {
|
||||
i_this->pm_bgw = new dBgW();
|
||||
|
||||
JUT_ASSERT(DEMO_SELECT(0x30D, 0x321), i_this->pm_bgw != 0);
|
||||
JUT_ASSERT(DEMO_SELECT(781, 801), i_this->pm_bgw != NULL);
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Bdkobj", BDKOBJ_DZB_S_TOWER_BRIDGE);
|
||||
if (i_this->pm_bgw->Set(dzb, cBgW::MOVE_BG_e, &i_this->mMtx) == TRUE) {
|
||||
return FALSE;
|
||||
|
||||
+87
-38
@@ -58,17 +58,16 @@ namespace {
|
||||
}
|
||||
|
||||
const daBomb_c::Attr_c daBomb_c::m_attrType[] = {
|
||||
{"Link", 0x8E0},
|
||||
{"Link", DEMO_SELECT(0x2500, 0x08E0)},
|
||||
{"VbakH", 0x8000},
|
||||
{"Link", 0x8E0},
|
||||
{"Link", DEMO_SELECT(0x2500, 0x08E0)},
|
||||
};
|
||||
|
||||
/* 800D9364-800D977C .text executeAfter__25daBomb_fuseSmokeEcallBackFP14JPABaseEmitter */
|
||||
void daBomb_fuseSmokeEcallBack::executeAfter(JPABaseEmitter* emitter) {
|
||||
JGeometry::TVec3<f32> vec1;
|
||||
vec1.set(*field_0x0C);
|
||||
JGeometry::TVec3<f32> vec2;
|
||||
vec2.set(*mpPos);
|
||||
JGeometry::TVec3<f32> vec1(field_0x0C->x, field_0x0C->y, field_0x0C->z);
|
||||
JGeometry::TVec3<f32> vec2(mpPos->x, mpPos->y, mpPos->z);
|
||||
f32 f21 = 0.5f;
|
||||
emitter->setGlobalTranslation(vec2);
|
||||
f32 temp = mpPos->abs(*field_0x0C);
|
||||
s16 temp2 = (20.0f - temp) * 0.5f + 10.0f;
|
||||
@@ -79,14 +78,14 @@ void daBomb_fuseSmokeEcallBack::executeAfter(JPABaseEmitter* emitter) {
|
||||
emitter->setLifeTime(temp2);
|
||||
|
||||
JGeometry::TVec3<f32> vec3;
|
||||
vec3.z = 0.5f * (vec2.x - vec1.x);
|
||||
vec3.y = 0.5f * (vec2.y - vec1.y);
|
||||
vec3.x = 0.5f * (vec2.z - vec1.z);
|
||||
vec3.z = f21 * (vec2.x - vec1.x);
|
||||
vec3.y = f21 * (vec2.y - vec1.y);
|
||||
vec3.x = f21 * (vec2.z - vec1.z);
|
||||
|
||||
JGeometry::TVec3<f32> vec4;
|
||||
vec4.x = 0.5f * (vec1.x - field_0x10->x);
|
||||
vec4.y = 0.5f * (vec1.y - field_0x10->y);
|
||||
vec4.z = 0.5f * (vec1.z - field_0x10->z);
|
||||
vec4.x = f21 * (vec1.x - field_0x10->x);
|
||||
vec4.y = f21 * (vec1.y - field_0x10->y);
|
||||
vec4.z = f21 * (vec1.z - field_0x10->z);
|
||||
|
||||
f32 temp5 = mpPos->abs(*field_0x0C);
|
||||
|
||||
@@ -112,7 +111,7 @@ void daBomb_fuseSmokeEcallBack::executeAfter(JPABaseEmitter* emitter) {
|
||||
|
||||
/* 800D977C-800D97C4 .text execute__26daBomb_fuseSparksEcallBackFP14JPABaseEmitter */
|
||||
void daBomb_fuseSparksEcallBack::execute(JPABaseEmitter* emitter) {
|
||||
JGeometry::TVec3<f32> pos(*mpPos);
|
||||
JGeometry::TVec3<f32> pos(mpPos->x, mpPos->y, mpPos->z);
|
||||
emitter->setGlobalTranslation(pos);
|
||||
|
||||
JSUPtrLink* link = emitter->getParticleList()->getFirstLink();
|
||||
@@ -405,7 +404,9 @@ bool daBomb_c::checkExplodeBg_cannon() {
|
||||
|
||||
bool hit = mAcch.ChkWallHit() || mAcch.ChkGroundHit() || mAcch.ChkRoofHit();
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
bool dead = chk_dead_zone();
|
||||
#endif
|
||||
bool ret = false;
|
||||
if(burn || hit) {
|
||||
ret = procExplode_init();
|
||||
@@ -415,9 +416,11 @@ bool daBomb_c::checkExplodeBg_cannon() {
|
||||
makeWaterEffect();
|
||||
field_0x781 = true;
|
||||
}
|
||||
#if VERSION > VERSION_DEMO
|
||||
else if(dead) {
|
||||
field_0x781 = true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -435,6 +438,7 @@ bool daBomb_c::checkExplodeBg() {
|
||||
return (this->*proc[mType])();
|
||||
}
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 800DA320-800DA3A0 .text water_tention__8daBomb_cFv */
|
||||
void daBomb_c::water_tention() {
|
||||
if(chk_water_in()) {
|
||||
@@ -444,6 +448,7 @@ void daBomb_c::water_tention() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800DA3A0-800DA520 .text posMoveF__8daBomb_cFv */
|
||||
void daBomb_c::posMoveF() {
|
||||
@@ -461,7 +466,9 @@ void daBomb_c::posMoveF() {
|
||||
}
|
||||
|
||||
if(!chk_state(STATE_5) && !chk_state(STATE_6) && field_0x6F3 != 1) {
|
||||
#if VERSION > VERSION_DEMO
|
||||
water_tention();
|
||||
#endif
|
||||
tri = dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd);
|
||||
|
||||
if(mWindVec.abs2() > 0.01f) {
|
||||
@@ -510,6 +517,24 @@ void daBomb_c::bgCrrPos_lava() {
|
||||
|
||||
/* 800DA5E0-800DA700 .text bgCrrPos_water__8daBomb_cFv */
|
||||
void daBomb_c::bgCrrPos_water() {
|
||||
#if VERSION == VERSION_DEMO
|
||||
bool r4 = mAcch.ChkWaterIn();
|
||||
bool r5 = false;
|
||||
field_0x558 = -G_CM3D_F_INF;
|
||||
if (r4) {
|
||||
r5 = true;
|
||||
field_0x558 = mAcch.m_wtr.GetHeight();
|
||||
} else {
|
||||
bool r31 = daSea_ChkArea(current.pos.x, current.pos.z);
|
||||
f32 f1 = daSea_calcWave(current.pos.x, current.pos.z);
|
||||
if (r31 && current.pos.y < f1) {
|
||||
r5 = true;
|
||||
field_0x558 = f1;
|
||||
}
|
||||
}
|
||||
field_0x560 = r5 && !mbWaterIn;
|
||||
mbWaterIn = r5;
|
||||
#else
|
||||
f32 f31 = mAcch.m_wtr.GetHeight();
|
||||
bool r31 = daSea_ChkArea(current.pos.x, current.pos.z);
|
||||
f32 f1 = daSea_calcWave(current.pos.x, current.pos.z);
|
||||
@@ -538,6 +563,7 @@ void daBomb_c::bgCrrPos_water() {
|
||||
}
|
||||
field_0x560 = r5 && !mbWaterIn;
|
||||
mbWaterIn = r5;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 800DA700-800DA708 .text chk_water_land__8daBomb_cFv */
|
||||
@@ -606,13 +632,20 @@ void daBomb_c::set_real_shadow_flag() {
|
||||
bool r31 = chk_state(STATE_2);
|
||||
bool r3 = chk_state(STATE_3);
|
||||
bool r30 = false;
|
||||
if (field_0x7C8 <= 1 && (r31 || r3)) {
|
||||
if (
|
||||
#if VERSION > VERSION_DEMO
|
||||
field_0x7C8 <= 1 &&
|
||||
#endif
|
||||
(r31 || r3)
|
||||
) {
|
||||
if (model) {
|
||||
r30 = true;
|
||||
} else if (r3) {
|
||||
r30 = true;
|
||||
#if VERSION > VERSION_DEMO
|
||||
} else if (field_0x7C8 == 1) {
|
||||
r30 = true;
|
||||
#endif
|
||||
} else {
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
if (player->getGrabActorID() == fopAcM_GetID(this) && player->getGrabUpStart()) {
|
||||
@@ -620,9 +653,11 @@ void daBomb_c::set_real_shadow_flag() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (field_0x7C8 > 0) {
|
||||
field_0x7C8--;
|
||||
}
|
||||
#endif
|
||||
model = r30 ? mpModel : NULL;
|
||||
}
|
||||
|
||||
@@ -711,20 +746,20 @@ void daBomb_c::eff_explode_normal(const csXyz* rotation) {
|
||||
void daBomb_c::eff_explode_cheap(const csXyz* rotation) {
|
||||
JPABaseEmitter* emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_LIGHT_FLASH, ¤t.pos, rotation, &scale);
|
||||
if(emitter) {
|
||||
emitter->setLifeTime(0xC);
|
||||
JGeometry::TVec3<f32> vec(0.5f, 0.67f, 1.0f);
|
||||
emitter->setGlobalParticleScale(vec);
|
||||
emitter->setLifeTime(12);
|
||||
emitter->setGlobalParticleScale(0.5f, 0.67f);
|
||||
}
|
||||
|
||||
dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_232A, ¤t.pos, NULL, &scale);
|
||||
|
||||
emitter = dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CIRCLE, ¤t.pos, NULL, &scale);
|
||||
if(emitter) {
|
||||
emitter->setLifeTime(0x46);
|
||||
emitter->setLifeTime(70);
|
||||
}
|
||||
|
||||
emitter = dComIfGp_particle_setToonP1(dPa_name::ID_COMMON_SMOKE_DEBRIS, ¤t.pos, NULL, &scale);
|
||||
if(emitter) {
|
||||
emitter->setLifeTime(0x46);
|
||||
emitter->setLifeTime(70);
|
||||
emitter->setAwayFromAxisSpeed(25.0f);
|
||||
emitter->setDirectionalSpeed(35.0f);
|
||||
}
|
||||
@@ -859,14 +894,17 @@ BOOL daBomb_c::procExplode_init() {
|
||||
/* 800DB630-800DB880 .text procExplode__8daBomb_cFv */
|
||||
bool daBomb_c::procExplode() {
|
||||
camera_class* camera = dComIfGp_getCamera(0);
|
||||
f32 temp2 = 0.0f;
|
||||
f32 f31;
|
||||
f32 temp2;
|
||||
temp2 = 0.0f;
|
||||
f31 = 1500.0f;
|
||||
|
||||
mPntLight.mPower = field_0x778 * 1500.0f;
|
||||
mPntLight.mPower = f31 * field_0x778;
|
||||
mPntWind.mStrength = field_0x778;
|
||||
f32 temp = current.pos.abs(camera->mLookat.mEye);
|
||||
|
||||
if(temp < 1500.0f) {
|
||||
temp2 = 1.0f - (temp / 1500.0f);
|
||||
if(temp < f31) {
|
||||
temp2 = 1.0f - (temp / f31);
|
||||
}
|
||||
|
||||
dKy_actor_addcol_amb_set(200, 180, 100, field_0x778 * temp2);
|
||||
@@ -1050,6 +1088,12 @@ BOOL daBomb_c::execute() {
|
||||
makeFireEffect(pos, shape_angle);
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (field_0x7C8 > 0) {
|
||||
field_0x7C8--;
|
||||
}
|
||||
#endif
|
||||
|
||||
set_wind_vec();
|
||||
if(mFunc) {
|
||||
(this->*mFunc)();
|
||||
@@ -1201,18 +1245,24 @@ void daBomb_c::se_cannon_fly_stop() {
|
||||
|
||||
/* 800DC44C-800DC568 .text eff_water_splash__8daBomb_cFv */
|
||||
void daBomb_c::eff_water_splash() {
|
||||
#if VERSION == VERSION_DEMO
|
||||
cXyz pos(current.pos.x, mAcch.m_wtr.GetHeight(), current.pos.z);
|
||||
#else
|
||||
cXyz pos(current.pos.x, field_0x558, current.pos.z);
|
||||
#endif
|
||||
fopKyM_createWpillar(&pos, 0.5f, 0.75f, 0);
|
||||
|
||||
cBgS_PolyInfo* temp[2] = {
|
||||
field_0x562 ? NULL : &mAcch.m_wtr,
|
||||
DEMO_SELECT(&mAcch.m_wtr, field_0x562 ? NULL : &mAcch.m_wtr),
|
||||
&mAcch.m_gnd,
|
||||
};
|
||||
|
||||
u32 mtrlSndId = 0x13;
|
||||
for (int i = 0; i < ARRAY_SIZE(temp); i++) {
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (temp[i] == NULL)
|
||||
continue;
|
||||
#endif
|
||||
int bg_index = temp[i]->GetBgIndex();
|
||||
if (bg_index >= 0 && bg_index < 0x100) {
|
||||
mtrlSndId = dComIfG_Bgsp()->GetMtrlSndId(*temp[i]);
|
||||
@@ -1248,7 +1298,7 @@ bool daBomb_c::bombDelete() {
|
||||
|
||||
se_cannon_fly_stop();
|
||||
if(mType == 1) {
|
||||
dComIfG_resDelete(&mPhase, m_attrType[mType].resName);
|
||||
dComIfG_resDeleteDemo(&mPhase, m_attrType[mType].resName);
|
||||
}
|
||||
|
||||
dKy_actor_addcol_set(0, 0, 0, 0.0f);
|
||||
@@ -1269,30 +1319,30 @@ BOOL daBomb_c::createHeap() {
|
||||
BOOL ret;
|
||||
if(mType == 1) {
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(m_attrType[mType].resName, VBAKH_BDL_VBAKM));
|
||||
JUT_ASSERT(0x9A5, modelData != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(2416, 2469), modelData != NULL);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022);
|
||||
|
||||
J3DAnmTransform* bck0_data = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(m_attrType[mType].resName, VBAKH_BCK_VBAMX));
|
||||
JUT_ASSERT(0x9AE, bck0_data != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(2425, 2478), bck0_data != NULL);
|
||||
int temp = mBck0.init(modelData, bck0_data, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false);
|
||||
|
||||
J3DAnmTransform* bck1_data = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(m_attrType[mType].resName, VBAKH_BCK_VBAKM));
|
||||
JUT_ASSERT(0x9B4, bck1_data != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(2431, 2484), bck1_data != NULL);
|
||||
int temp2 = mBck1.init(modelData, bck1_data, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false);
|
||||
|
||||
J3DAnmTevRegKey* brk0_data = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(m_attrType[mType].resName, VBAKH_BRK_VBAMX));
|
||||
JUT_ASSERT(0x9BB, brk0_data != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(2438, 2491), brk0_data != NULL);
|
||||
int temp3 = mBrk0.init(modelData, brk0_data, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false, 0);
|
||||
|
||||
J3DAnmTevRegKey* brk1_data = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(m_attrType[mType].resName, VBAKH_BRK_VBAKM));
|
||||
JUT_ASSERT(0x9C1, brk1_data != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(2444, 2497), brk1_data != NULL);
|
||||
int temp4 = mBrk1.init(modelData, brk1_data, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false, 0);
|
||||
|
||||
return mpModel && temp && temp2 && temp3 && temp4;
|
||||
}
|
||||
else {
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(m_attrType[mType].resName, LINK_BDL_BOMB));
|
||||
JUT_ASSERT(0x9CE, modelData != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(2457, 2510), modelData != NULL);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
|
||||
if(!mpModel) {
|
||||
@@ -1327,13 +1377,7 @@ cPhs_State daBomb_c::create() {
|
||||
|
||||
fopAcM_SetupActor(this, daBomb_c);
|
||||
|
||||
cPhs_State status;
|
||||
if(mType == 1) {
|
||||
status = dComIfG_resLoad(&mPhase, m_attrType[mType].resName);
|
||||
}
|
||||
else {
|
||||
status = cPhs_COMPLEATE_e;
|
||||
}
|
||||
cPhs_State status = mType == 1 ? dComIfG_resLoad(&mPhase, attrType().resName) : cPhs_COMPLEATE_e;
|
||||
|
||||
if(status == cPhs_COMPLEATE_e) {
|
||||
if(fopAcM_entrySolidHeap(this, daBomb_createHeap, attrType().heapSize)) {
|
||||
@@ -1390,12 +1434,14 @@ void daBomb_c::create_init() {
|
||||
mAcch.m_roof_crr_height = 50.0f;
|
||||
mAcch.OnLineCheck();
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
field_0x554 = -G_CM3D_F_INF;
|
||||
field_0x558 = -G_CM3D_F_INF;
|
||||
field_0x55C = -G_CM3D_F_INF;
|
||||
field_0x560 = 0;
|
||||
mbWaterIn = 0;
|
||||
field_0x562 = 0;
|
||||
#endif
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
|
||||
mStts.Init(200, 0xFF, this);
|
||||
@@ -1439,6 +1485,9 @@ void daBomb_c::create_init() {
|
||||
if(chk_state(STATE_3)) {
|
||||
field_0x6F0 = 1;
|
||||
field_0x7C8 = 2;
|
||||
#if VERSION == VERSION_DEMO
|
||||
model = mpModel;
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
field_0x7C8 = 0;
|
||||
|
||||
@@ -3358,7 +3358,7 @@ void daShip_c::setRopePos() {
|
||||
emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_0038, ropeSegments, NULL, NULL, 0xFF, &m19AC);
|
||||
|
||||
if(emitter) {
|
||||
emitter->setGlobalParticleScale(JGeometry::TVec3<f32>(1.5f, 1.5f, 1.0f));
|
||||
emitter->setGlobalParticleScale(1.5f, 1.5f);
|
||||
emitter->setEmitterScale(water_drop_scale);
|
||||
emitter->setLifeTime(30);
|
||||
}
|
||||
|
||||
@@ -2760,8 +2760,11 @@ void Act_c::bound(float arg1) {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (mAcch.ChkWallHit() != false) {
|
||||
speedF *= 0.9f;
|
||||
} else {
|
||||
bool tmp = mAcch.ChkWallHit();
|
||||
if (tmp) {
|
||||
speedF *= 0.9f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user