mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-30 17:05:33 -04:00
582 lines
17 KiB
C++
582 lines
17 KiB
C++
/**
|
|
* d_a_obj_ice.cpp
|
|
* Object - Block of ice (blocks treasure chests, enemies, rupees, etc.)
|
|
*/
|
|
|
|
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
|
#include "d/actor/d_a_obj_ice.h"
|
|
#include "d/d_camera.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_kankyo_rain.h"
|
|
#include "d/d_priority.h"
|
|
#include "d/d_procname.h"
|
|
#include "d/res/res_ikori.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "f_op/f_op_camera.h"
|
|
#include "m_Do/m_Do_hostIO.h"
|
|
|
|
#if VERSION == VERSION_DEMO
|
|
class daObjIce_HIO_c : public JORReflexible {
|
|
public:
|
|
daObjIce_HIO_c();
|
|
virtual ~daObjIce_HIO_c() {}
|
|
|
|
void genMessage(JORMContext* ctx) {}
|
|
|
|
public:
|
|
/* 0x04 */ s8 mNo;
|
|
/* 0x08 */ f32 m08;
|
|
/* 0x0C */ f32 m0C;
|
|
/* 0x10 */ f32 m10;
|
|
/* 0x14 */ f32 m14;
|
|
/* 0x18 */ f32 m18;
|
|
/* 0x1C */ f32 m1C;
|
|
/* 0x20 */ f32 m20;
|
|
/* 0x24 */ f32 m24;
|
|
/* 0x28 */ f32 m28;
|
|
/* 0x2C */ f32 m2C;
|
|
/* 0x30 */ f32 m30;
|
|
/* 0x34 */ f32 m34;
|
|
/* 0x38 */ u8 m38;
|
|
/* 0x39 */ u8 m39;
|
|
/* 0x3A */ u8 m3A;
|
|
/* 0x3B */ u8 m3B;
|
|
}; // size = 0x3C
|
|
|
|
static daObjIce_HIO_c l_HIO;
|
|
#endif
|
|
|
|
namespace {
|
|
static const char l_arcname[] = "Ikori";
|
|
static const f32 l_co_radius_table[] = {40.0f, 65.0f, 75.0f};
|
|
static const f32 l_co_height_table[] = {120.0f, 90.0f, 60.0f};
|
|
static const dCcD_SrcCyl l_cyl_src = {
|
|
// dCcD_SrcGObjInf
|
|
{
|
|
/* Flags */ 0,
|
|
/* SrcObjAt Type */ 0,
|
|
/* SrcObjAt Atp */ 0,
|
|
/* SrcObjAt SPrm */ 0,
|
|
/* SrcObjTg Type */ AT_TYPE_ALL & ~AT_TYPE_WATER & ~AT_TYPE_WIND & ~AT_TYPE_UNK400000 & ~AT_TYPE_LIGHT,
|
|
/* SrcObjTg SPrm */ cCcD_TgSPrm_Set_e | cCcD_TgSPrm_IsOther_e,
|
|
/* SrcObjCo SPrm */ 0,
|
|
/* SrcGObjAt Se */ 0,
|
|
/* SrcGObjAt HitMark */ dCcG_AtHitMark_None_e,
|
|
/* SrcGObjAt Spl */ dCcG_At_Spl_UNK0,
|
|
/* SrcGObjAt Mtrl */ 0,
|
|
/* SrcGObjAt SPrm */ 0,
|
|
/* SrcGObjTg Se */ 0,
|
|
/* SrcGObjTg HitMark */ 0,
|
|
/* SrcGObjTg Spl */ dCcG_Tg_Spl_UNK0,
|
|
/* SrcGObjTg Mtrl */ 0,
|
|
/* SrcGObjTg SPrm */ dCcG_TgSPrm_NoHitMark_e,
|
|
/* SrcGObjCo SPrm */ 0,
|
|
},
|
|
// cM3dGCylS
|
|
{{
|
|
/* Center */ {0.0f, 0.0f, 0.0f},
|
|
/* Radius */ 65.0f,
|
|
/* Height */ 140.0f,
|
|
}},
|
|
};
|
|
} // namespace
|
|
|
|
#if VERSION == VERSION_DEMO
|
|
daObjIce_HIO_c::daObjIce_HIO_c() {
|
|
mNo = -1;
|
|
m08 = 40.0f;
|
|
m0C = 120.0f;
|
|
m10 = 65.0f;
|
|
m14 = 90.0f;
|
|
m18 = 75.0f;
|
|
m1C = 60.0f;
|
|
m20 = 1.0f;
|
|
m24 = 0.0009f;
|
|
m28 = 80.0f;
|
|
m2C = 150.0f;
|
|
m30 = 1.8f;
|
|
m34 = 0.5f;
|
|
m38 = 0;
|
|
m39 = 0;
|
|
m3A = 0;
|
|
m3B = 1;
|
|
}
|
|
#endif
|
|
|
|
/* 00000078-000000F0 .text chk_appear__10daObjIce_cFv */
|
|
u8 daObjIce_c::chk_appear() {
|
|
s32 switchIndex = param_get_swSave();
|
|
u8 uVar2 = 0;
|
|
if (switchIndex != 0xFF) {
|
|
if (!fopAcM_isSwitch(this, switchIndex)) {
|
|
uVar2 = 1;
|
|
}
|
|
} else {
|
|
uVar2 = 1;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
/* 000000F0-0000018C .text set_mtx__10daObjIce_cFv */
|
|
void daObjIce_c::set_mtx() {
|
|
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
|
mDoMtx_stack_c::XYZrotM(shape_angle.x, shape_angle.y, shape_angle.z);
|
|
mDoMtx_stack_c::scaleM(m44C, m450, m44C);
|
|
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
mDoMtx_stack_c::scaleM(scale.x, scale.y, scale.z);
|
|
cMtx_copy(mDoMtx_stack_c::get(), m40C);
|
|
}
|
|
|
|
/* 0000018C-000001C8 .text init_mtx__10daObjIce_cFv */
|
|
void daObjIce_c::init_mtx() {
|
|
mModel->setBaseScale(scale);
|
|
set_mtx();
|
|
}
|
|
|
|
/* 000001C8-000001EC .text solidHeapCB__10daObjIce_cFP10fopAc_ac_c */
|
|
BOOL daObjIce_c::solidHeapCB(fopAc_ac_c* a_this) {
|
|
return ((daObjIce_c*)a_this)->create_heap();
|
|
}
|
|
|
|
/* 000001EC-000002E4 .text create_heap__10daObjIce_cFv */
|
|
bool daObjIce_c::create_heap() {
|
|
bool uVar5 = true;
|
|
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcname, IKORI_BDL_VICE);
|
|
|
|
if (modelData == NULL) {
|
|
JUT_ASSERT(DEMO_SELECT(392, 395), FALSE);
|
|
uVar5 = false;
|
|
} else {
|
|
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000222);
|
|
|
|
cBgD_t* pcVar3 = (cBgD_t*)dComIfG_getObjectRes(l_arcname, IKORI_DZB_VICE);
|
|
mBgw = dBgW_NewSet(pcVar3, cBgW::MOVE_BG_e, &m40C);
|
|
|
|
if (mModel == NULL || mBgw == NULL) {
|
|
uVar5 = false;
|
|
}
|
|
}
|
|
return uVar5;
|
|
}
|
|
|
|
/* 000002E4-000005F4 .text tg_hitCallback__10daObjIce_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
|
|
void daObjIce_c::tg_hitCallback(fopAc_ac_c* a_this, dCcD_GObjInf* arg1, fopAc_ac_c* arg2, dCcD_GObjInf* arg3) {
|
|
daObjIce_c* i_this = (daObjIce_c*)a_this;
|
|
cCcD_Obj* pcVar8 = arg1->GetTgHitObj();
|
|
|
|
if (pcVar8 != NULL) {
|
|
f32 x2;
|
|
f32 y;
|
|
f32 z2;
|
|
cXyz sp20 = i_this->current.pos;
|
|
cXyz* pPos = arg1->GetTgHitPosP();
|
|
s16 idx = -i_this->shape_angle.y;
|
|
f32 sin = cM_ssin(idx);
|
|
f32 cos = cM_scos(idx);
|
|
f32 x = pPos->x - sp20.x;
|
|
f32 z = pPos->z - sp20.z;
|
|
|
|
x2 = x * cos + z * sin;
|
|
y = pPos->y - sp20.y;
|
|
z2 = -x * sin + z * cos;
|
|
i_this->m45C = 0;
|
|
|
|
for (s32 i = 0; i < 3; i++) {
|
|
f32 fVar6 = i_this->m44C * (i_this->scale.x * l_co_radius_table[i]);
|
|
f32 fVar7 = i_this->m450 * (i_this->scale.y * l_co_height_table[i]);
|
|
f32 fVar5 = i_this->m44C * (i_this->scale.z * l_co_radius_table[i]);
|
|
if (y < fVar7 && (SQUARE(x2) / SQUARE(fVar6) + SQUARE(z2) / SQUARE(fVar5) < 1.0f)) {
|
|
switch (pcVar8->GetAtType()) {
|
|
case AT_TYPE_UNK20000:
|
|
case AT_TYPE_FIRE:
|
|
case AT_TYPE_FIRE_ARROW:
|
|
i_this->m45C = 2;
|
|
break;
|
|
|
|
default: {
|
|
#if VERSION == VERSION_DEMO
|
|
i_this->m44C -= l_HIO.m24;
|
|
#else
|
|
i_this->m44C -= 0.0009f;
|
|
#endif
|
|
if (i_this->m44C < 0.0f) {
|
|
i_this->m44C = 0.0f;
|
|
}
|
|
i_this->m450 = 1.0f - cM_scos(i_this->m44C * 16384.0f);
|
|
if (i_this->m44C < 0.1f) {
|
|
i_this->m45C = 1;
|
|
}
|
|
csXyz sp18(0, 0, 0);
|
|
sp18.x = cM_atan2s(-pPos->y + i_this->current.pos.y, pPos->z - i_this->current.pos.z);
|
|
sp18.y = cM_atan2s(pPos->x - i_this->current.pos.x, pPos->z - i_this->current.pos.z);
|
|
dComIfGp_particle_set(dPa_name::ID_AK_JN_ICEHAHEN00, pPos, &sp18, NULL, 0xFF, NULL, -1, &i_this->tevStr.mColorK0);
|
|
break;
|
|
}
|
|
case AT_TYPE_BOMB:
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (i_this->m45C != 0) {
|
|
arg1->OnTgNoConHit();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 000005F4-000008C0 .text _create__10daObjIce_cFv */
|
|
cPhs_State daObjIce_c::_create() {
|
|
cPhs_State ret = cPhs_ERROR_e;
|
|
fopAcM_ct(this, daObjIce_c);
|
|
|
|
if (fopAcM_IsFirstCreating(this)) {
|
|
m448 = chk_appear();
|
|
}
|
|
|
|
if (m448 == 1) {
|
|
ret = dComIfG_resLoad(&mPhase, l_arcname);
|
|
}
|
|
|
|
if (ret == cPhs_COMPLEATE_e) {
|
|
if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x1A20)) {
|
|
if (dComIfG_Bgsp()->Regist(mBgw, this)) {
|
|
ret = cPhs_ERROR_e;
|
|
} else {
|
|
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
|
|
m44C = 1.0f;
|
|
m450 = 1.0f;
|
|
init_mtx();
|
|
|
|
f32 fVar1 = scale.x;
|
|
if (fVar1 < scale.z) {
|
|
fVar1 = scale.z;
|
|
}
|
|
|
|
mStts.Init(0xFF, 0xFF, this);
|
|
mCyl.Set(l_cyl_src);
|
|
mCyl.SetStts(&mStts);
|
|
mCyl.SetC(current.pos);
|
|
mCyl.SetR(fVar1 * 75.0f);
|
|
mCyl.SetH(scale.y * 120.0f);
|
|
|
|
mCyl.OnTgNoAtHitInfSet();
|
|
mCyl.SetTgHitCallback(tg_hitCallback);
|
|
m454 = 255.0f;
|
|
fopAcM_setCullSizeBox(this, scale.x * -80.0f, 0.0f, scale.z * -80.0f, scale.x * 80.0f, scale.y * 150.0f, scale.z * 80.0f);
|
|
attention_info.position.x = current.pos.x;
|
|
attention_info.position.y = current.pos.y + scale.y * 60.0f;
|
|
attention_info.position.z = current.pos.z;
|
|
eyePos = attention_info.position;
|
|
m43C = &daObjIce_c::wait_act_proc;
|
|
}
|
|
} else {
|
|
ret = cPhs_ERROR_e;
|
|
}
|
|
}
|
|
|
|
#if VERSION == VERISON_DEMO
|
|
if (l_HIO.mNo < 0) {
|
|
l_HIO.mNo = mDoHIO_createChild("汎用氷", &l_HIO);
|
|
}
|
|
#endif
|
|
|
|
return ret;
|
|
}
|
|
|
|
/* 00000A78-00000B18 .text _delete__10daObjIce_cFv */
|
|
bool daObjIce_c::_delete() {
|
|
if (m448 == 1) {
|
|
dComIfG_resDelete(&mPhase, l_arcname);
|
|
#if VERSION > VERISON_DEMO
|
|
if (heap != NULL && mBgw != NULL) {
|
|
#else
|
|
if (mBgw != NULL) {
|
|
#endif
|
|
if (mBgw->ChkUsed()) {
|
|
dComIfG_Bgsp()->Release(mBgw);
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
mBgw = NULL;
|
|
#endif
|
|
}
|
|
}
|
|
|
|
#if VERSION == VERISON_DEMO
|
|
if (l_HIO.mNo >= 0) {
|
|
mDoHIO_deleteChild(l_HIO.mNo);
|
|
l_HIO.mNo = -1;
|
|
}
|
|
#endif
|
|
return true;
|
|
}
|
|
|
|
/* 00000B18-00000CA4 .text wait_act_proc__10daObjIce_cFv */
|
|
void daObjIce_c::wait_act_proc() {
|
|
if (!mCyl.ChkTgHit() || mStts.GetTgApid() != mStts.GetTgOldApid()) {
|
|
mCyl.OffAtNoConHit();
|
|
}
|
|
|
|
mStts.Move();
|
|
mCyl.ClrTgHit();
|
|
|
|
switch (m45C) {
|
|
case 2:
|
|
fopAcM_seStartCurrent(this, JA_SE_OBJ_ICE_ROCK_MELT, 0);
|
|
|
|
case 1: {
|
|
m458 = 0x5a;
|
|
JPABaseEmitter* emitter = dComIfGp_particle_set(dPa_name::ID_AK_JN_ICETHAW00, ¤t.pos, NULL, &scale, 0xFF, NULL, -1, &tevStr.mColorK0);
|
|
if (emitter != NULL) {
|
|
#if VERSION == VERSION_DEMO
|
|
JGeometry::TVec3<f32> s;
|
|
s.set(scale.x, scale.y, scale.z);
|
|
#else
|
|
JGeometry::TVec3<f32> s;
|
|
s.set(scale);
|
|
#endif
|
|
emitter->setGlobalDynamicsScale(s);
|
|
s.x = scale.x;
|
|
s.y = scale.x;
|
|
s.z = scale.x;
|
|
emitter->setGlobalParticleScale(s);
|
|
}
|
|
|
|
m43C = &daObjIce_c::fade_out_retire_act_proc;
|
|
break;
|
|
}
|
|
default:
|
|
#if VERSION == VERSION_DEMO
|
|
if (l_HIO.m3B == 1) {
|
|
dComIfG_Ccsp()->Set(&mCyl);
|
|
}
|
|
|
|
if (l_HIO.m38 == 1) {
|
|
if (mBgw != NULL && mBgw->ChkUsed()) {
|
|
dComIfG_Bgsp()->Release(mBgw);
|
|
}
|
|
m458 = 0x5A;
|
|
dComIfGp_particle_set(dPa_name::ID_AK_JN_ICETHAW00, ¤t.pos, NULL, &scale, 0xFF, NULL, -1, &tevStr.mColorK0);
|
|
m43C = &daObjIce_c::fade_out_retire_act_proc;
|
|
}
|
|
#else
|
|
dComIfG_Ccsp()->Set(&mCyl);
|
|
#endif
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 00000CA4-00000DFC .text fade_out_retire_act_proc__10daObjIce_cFv */
|
|
void daObjIce_c::fade_out_retire_act_proc() {
|
|
f32 tmp2 = m44C;
|
|
m454 -= 2.8333333f;
|
|
tmp2 -= 0.011111111f;
|
|
if (tmp2 < 0.0f) {
|
|
tmp2 = 0.0f;
|
|
}
|
|
|
|
if (m454 < 0.0f) {
|
|
m454 = 0.0f;
|
|
}
|
|
|
|
f32 tmp3 = 1.0f - cM_scos(tmp2 * 16384.0f);
|
|
|
|
m44C = tmp2;
|
|
m450 = tmp3;
|
|
|
|
if (m44C < 0.4f && mBgw != NULL) {
|
|
if (mBgw->ChkUsed()) {
|
|
dComIfG_Bgsp()->Release(mBgw);
|
|
param_on_swSave();
|
|
}
|
|
}
|
|
|
|
m458--;
|
|
if (m458 <= 0) {
|
|
fopAcM_delete(this);
|
|
}
|
|
}
|
|
|
|
/* 00000DFC-00000EB8 .text _execute__10daObjIce_cFv */
|
|
bool daObjIce_c::_execute() {
|
|
#if VERSION == VERSION_DEMO
|
|
if (l_HIO.m3A == 1) {
|
|
scale.setall(l_HIO.m20);
|
|
mModel->setBaseScale(scale);
|
|
mCyl.SetR(l_HIO.m18 * l_HIO.m20 * m44C);
|
|
mCyl.SetH(l_HIO.m0C * l_HIO.m20 * m450);
|
|
fopAcM_setCullSizeBox(this, -l_HIO.m28 * scale.x, 0.0f, -l_HIO.m28 * scale.z, l_HIO.m28 * scale.x, l_HIO.m2C * scale.y, l_HIO.m28 * scale.z);
|
|
} else {
|
|
mCyl.SetR(m44C * (l_HIO.m18 * scale.x));
|
|
mCyl.SetH(m450 * (l_HIO.m0C * scale.y));
|
|
}
|
|
#else
|
|
mCyl.SetR(m44C * (scale.x * 75.0f));
|
|
mCyl.SetH(m450 * (scale.y * 120.0f));
|
|
#endif
|
|
set_mtx();
|
|
|
|
if (mBgw != NULL && mBgw->ChkUsed()) {
|
|
mBgw->Move();
|
|
}
|
|
(this->*m43C)();
|
|
return true;
|
|
}
|
|
|
|
/* 00000EB8-00000F48 .text set_material_sub__FP11J3DMaterialUc */
|
|
void set_material_sub(J3DMaterial* material, unsigned char alpha) {
|
|
while (material != NULL) {
|
|
if (alpha == 0) {
|
|
material->getShape()->hide();
|
|
} else {
|
|
material->getShape()->show();
|
|
material->getTevKColor(3)->mColor.a = alpha;
|
|
}
|
|
material = material->getNext();
|
|
}
|
|
}
|
|
|
|
/* 00000F48-00000FB0 .text set_material__FP8J3DModelUc */
|
|
void set_material(J3DModel* model, unsigned char alpha) {
|
|
J3DModelData* modelData = model->getModelData();
|
|
for (u16 i = 0; i < modelData->getJointNum(); i++) {
|
|
set_material_sub(modelData->getJointNodePointer(i)->getMesh(), alpha);
|
|
}
|
|
}
|
|
|
|
/* 00000FB0-00001070 .text _draw__10daObjIce_cFv */
|
|
bool daObjIce_c::_draw() {
|
|
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &tevStr);
|
|
g_env_light.setLightTevColorType(mModel, &tevStr);
|
|
dComIfGd_setListMaskOff();
|
|
set_material(mModel, m454);
|
|
setEffectMtx();
|
|
mDoExt_modelUpdateDL(mModel);
|
|
dComIfGd_setList();
|
|
return true;
|
|
}
|
|
|
|
/* 00001070-000013A0 .text setEffectMtx__10daObjIce_cFv */
|
|
void daObjIce_c::setEffectMtx() {
|
|
static Mtx mtx_adj = {
|
|
{0.5f, 0.0f, 0.0f, 0.5f},
|
|
{0.0f, -0.5f, 0.0f, 0.5f},
|
|
{0.0f, 0.0f, 1.0f, 0.0f},
|
|
};
|
|
|
|
Mtx sp98;
|
|
Mtx sp68;
|
|
Mtx sp38;
|
|
cXyz sp2C;
|
|
cXyz sp20;
|
|
cXyz sp14;
|
|
cXyz* eye = &eyePos;
|
|
#if VERSION == VERSION_DEMO
|
|
f32 fVar2 = l_HIO.m30 / scale.x;
|
|
f32 fVar3 = l_HIO.m30 / scale.y;
|
|
#else
|
|
f32 fVar2 = 1.8f / scale.x;
|
|
f32 fVar3 = 1.8f / scale.y;
|
|
#endif
|
|
camera_class* camera = dCam_getCamera();
|
|
|
|
sp2C = *eye - camera->mLookat.mEye;
|
|
dKyr_get_vectle_calc(&tevStr.mLightPosWorld, eye, &sp20);
|
|
C_VECHalfAngle(&sp2C, &sp20, &sp14);
|
|
C_MTXLookAt(sp98, &cXyz::Zero, &cXyz::BaseY, &sp14);
|
|
|
|
mDoMtx_stack_c::scaleS(fVar2, fVar3, 1.0f);
|
|
mDoMtx_stack_c::concat(mtx_adj);
|
|
mDoMtx_stack_c::concat(sp98);
|
|
mDoMtx_stack_c::get()[0][3] = 0.0f;
|
|
mDoMtx_stack_c::get()[1][3] = 0.0f;
|
|
mDoMtx_stack_c::get()[2][3] = 0.0f;
|
|
cMtx_copy(mDoMtx_stack_c::get(), sp68);
|
|
#if VERSION == VERSION_DEMO
|
|
mDoMtx_stack_c::scaleS(l_HIO.m34, l_HIO.m34, 1.0f);
|
|
#else
|
|
mDoMtx_stack_c::scaleS(0.5f, 0.5f, 1.0f);
|
|
#endif
|
|
mDoMtx_stack_c::concat(mtx_adj);
|
|
mDoMtx_stack_c::concat(sp98);
|
|
mDoMtx_stack_c::get()[0][3] = 0.0f;
|
|
mDoMtx_stack_c::get()[1][3] = 0.0f;
|
|
mDoMtx_stack_c::get()[2][3] = 0.0f;
|
|
cMtx_copy(mDoMtx_stack_c::get(), sp38);
|
|
|
|
J3DModelData* modelData = this->mModel->getModelData();
|
|
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
|
|
J3DMaterial* material = modelData->getMaterialNodePointer(i);
|
|
for (u32 j = 0; j < 8; j++) {
|
|
J3DTexGenBlock* genBlock = material->getTexGenBlock();
|
|
J3DTexMtx* mtx = genBlock->getTexMtx(j);
|
|
if (mtx != NULL) {
|
|
J3DTexMtxInfo& mtxInfo = mtx->getTexMtxInfo();
|
|
switch (mtxInfo.mInfo) {
|
|
case 10:
|
|
case 11:
|
|
switch (i) {
|
|
case 1:
|
|
mtxInfo.setEffectMtx(sp68);
|
|
break;
|
|
case 0:
|
|
mtxInfo.setEffectMtx(sp38);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 000013A0-000013C0 .text daObjIce_Create__FP10fopAc_ac_c */
|
|
static cPhs_State daObjIce_Create(fopAc_ac_c* i_this) {
|
|
return ((daObjIce_c*)i_this)->_create();
|
|
}
|
|
|
|
/* 000013C0-000013E4 .text daObjIce_Delete__FP10daObjIce_c */
|
|
static BOOL daObjIce_Delete(daObjIce_c* i_this) {
|
|
return ((daObjIce_c*)i_this)->_delete();
|
|
}
|
|
|
|
/* 000013E4-00001408 .text daObjIce_Execute__FP10daObjIce_c */
|
|
static BOOL daObjIce_Execute(daObjIce_c* i_this) {
|
|
return ((daObjIce_c*)i_this)->_execute();
|
|
}
|
|
|
|
/* 00001408-0000142C .text daObjIce_Draw__FP10daObjIce_c */
|
|
static BOOL daObjIce_Draw(daObjIce_c* i_this) {
|
|
return ((daObjIce_c*)i_this)->_draw();
|
|
}
|
|
|
|
/* 0000142C-00001434 .text daObjIce_IsDelete__FP10daObjIce_c */
|
|
static BOOL daObjIce_IsDelete(daObjIce_c*) {
|
|
return TRUE;
|
|
}
|
|
|
|
static actor_method_class l_daObjIce_Method = {
|
|
(process_method_func)daObjIce_Create,
|
|
(process_method_func)daObjIce_Delete,
|
|
(process_method_func)daObjIce_Execute,
|
|
(process_method_func)daObjIce_IsDelete,
|
|
(process_method_func)daObjIce_Draw,
|
|
};
|
|
|
|
actor_process_profile_definition g_profile_Obj_Ice = {
|
|
/* LayerID */ fpcLy_CURRENT_e,
|
|
/* ListID */ 0x0008,
|
|
/* ListPrio */ fpcPi_CURRENT_e,
|
|
/* ProcName */ PROC_Obj_Ice,
|
|
/* Proc SubMtd */ &g_fpcLf_Method.base,
|
|
/* Size */ sizeof(daObjIce_c),
|
|
/* SizeOther */ 0,
|
|
/* Parameters */ 0,
|
|
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
|
/* Priority */ PRIO_Obj_Ice,
|
|
/* Actor SubMtd */ &l_daObjIce_Method,
|
|
/* Status */ fopAcStts_CULL_e | fopAcStts_UNK40000_e,
|
|
/* Group */ fopAc_ACTOR_e,
|
|
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
|
};
|