mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 22:10:59 -04:00
Merge pull request #765 from ammaraskar/d_a_fire
Match and link d_a_fire
This commit is contained in:
+1
-1
@@ -1553,7 +1553,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_fan", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_fganon", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_fgmahou"),
|
||||
ActorRel(NonMatching, "d_a_fire"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_fire", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_fm"),
|
||||
ActorRel(NonMatching, "d_a_gm"),
|
||||
ActorRel(NonMatching, "d_a_gnd"),
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
#ifndef D_A_FIRE_H
|
||||
#define D_A_FIRE_H
|
||||
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class JPABaseEmitter;
|
||||
|
||||
class daFire_c : public fopAc_ac_c {
|
||||
public:
|
||||
bool _delete();
|
||||
void CreateInit();
|
||||
BOOL CreateInit();
|
||||
cPhs_State _create();
|
||||
bool _execute();
|
||||
void search_wind();
|
||||
@@ -23,7 +27,54 @@ public:
|
||||
bool _draw();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
/* 0x290 */ dCcD_Stts mStts;
|
||||
/* 0x2CC */ dCcD_Cyl field_0x2CC[3];
|
||||
/* 0x65C */ dCcD_Cyl field_0x65C;
|
||||
/* 0x78C */ dCcD_Cyl field_0x78C;
|
||||
/* 0x8BC */ JPABaseEmitter* field_0x8BC;
|
||||
/* 0x8C0 */ JPABaseEmitter* field_0x8C0;
|
||||
/* 0x8C4 */ JPABaseEmitter* field_0x8C4;
|
||||
/* 0x8C8 */ s32 mSwitchNo;
|
||||
/* 0x8CC */ u32 mTrboxBit;
|
||||
/* 0x8D0 */ u8 mShape;
|
||||
/* 0x8D1 */ u8 field_0x8D1;
|
||||
/* 0x8D2 */ u8 field_0x8D2;
|
||||
/* 0x8D4 */ cXyz field_0x8D4;
|
||||
/* 0x8E0 */ cXyz field_0x8E0;
|
||||
/* 0x8EC */ u8 field_0x8EC;
|
||||
/* 0x8ED */ bool field_0x8ED;
|
||||
/* 0x8EE */ u8 field_0x8EE[0x8F0 - 0x8EE];
|
||||
/* 0x8F0 */ fpc_ProcID field_0x8F0;
|
||||
/* 0x8F4 */ s32 field_0x8F4;
|
||||
/* 0x8F8 */ s32 field_0x8F8;
|
||||
/* 0x8FC */ s16 field_0x8FC;
|
||||
/* 0x8FE */ s16 field_0x8FE;
|
||||
/* 0x900 */ u8 mType;
|
||||
/* 0x901 */ s8 field_0x901;
|
||||
/* 0x902 */ u8 field_0x902;
|
||||
/* 0x903 */ u8 field_0x903;
|
||||
};
|
||||
|
||||
namespace daFire_prm {
|
||||
inline u8 getSwitch(daFire_c* ac) {
|
||||
return fopAcM_GetParam(ac);
|
||||
}
|
||||
|
||||
inline u8 getTrboxBit(daFire_c* ac) {
|
||||
return (fopAcM_GetParam(ac) >> 12) & 0x1F;
|
||||
}
|
||||
|
||||
inline u8 getType(daFire_c* ac) {
|
||||
return (fopAcM_GetParam(ac) >> 17) & 0x7;
|
||||
}
|
||||
|
||||
inline u8 getShape(daFire_c* ac) {
|
||||
return (fopAcM_GetParam(ac) >> 8) & 0xF;
|
||||
}
|
||||
|
||||
inline u8 getSound(daFire_c* ac) {
|
||||
return (fopAcM_GetParam(ac) >> 20) & 0xF;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* D_A_FIRE_H */
|
||||
|
||||
+442
-27
@@ -4,112 +4,527 @@
|
||||
//
|
||||
|
||||
#include "d/actor/d_a_fire.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
|
||||
#include "weak_data_1811.h" // IWYU pragma: keep
|
||||
|
||||
static dCcD_SrcCyl l_cyl_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ AT_TYPE_FIRE,
|
||||
/* SrcObjAt Atp */ 1,
|
||||
/* SrcObjAt SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IsPlayer_e,
|
||||
/* SrcObjTg Type */ AT_TYPE_WATER | AT_TYPE_WIND,
|
||||
/* SrcObjTg SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IsOther_e,
|
||||
/* SrcObjCo SPrm */ 0,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ 0,
|
||||
/* SrcGObjAt Spl */ dCcG_At_Spl_UNK1,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt SPrm */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ 0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg SPrm */ dCcG_TgSPrm_NoHitMark_e,
|
||||
/* SrcGObjCo SPrm */ 0,
|
||||
},
|
||||
// cM3dGCylS
|
||||
{
|
||||
/* Center */ 0.0f, 0.0f, 0.0f,
|
||||
/* Radius */ 150.0f,
|
||||
/* Height */ 150.0f,
|
||||
},
|
||||
};
|
||||
static dCcD_SrcCyl l_co_cyl_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ 0,
|
||||
/* SrcObjAt Atp */ 0,
|
||||
/* SrcObjAt SPrm */ 0,
|
||||
/* SrcObjTg Type */ 0,
|
||||
/* SrcObjTg SPrm */ 0,
|
||||
/* SrcObjCo SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IsOther_e | cCcD_CoSPrm_VsEnemy_e,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ 0,
|
||||
/* SrcGObjAt Spl */ dCcG_At_Spl_UNK1,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt SPrm */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ 0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg SPrm */ dCcG_TgSPrm_NoHitMark_e,
|
||||
/* SrcGObjCo SPrm */ 0,
|
||||
},
|
||||
// cM3dGCylS
|
||||
{
|
||||
/* Center */ 0.0f, 0.0f, 0.0f,
|
||||
/* Radius */ 130.0f,
|
||||
/* Height */ 170.0f,
|
||||
}
|
||||
};
|
||||
static dCcD_SrcCyl at_cyl_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ AT_TYPE_UNK20000,
|
||||
/* SrcObjAt Atp */ 0,
|
||||
/* SrcObjAt SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IsOther_e,
|
||||
/* SrcObjTg Type */ 0,
|
||||
/* SrcObjTg SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IsOther_e,
|
||||
/* SrcObjCo SPrm */ 0,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ 0,
|
||||
/* SrcGObjAt Spl */ 0,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt SPrm */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ 0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg SPrm */ dCcG_TgSPrm_NoHitMark_e,
|
||||
/* SrcGObjCo SPrm */ 0,
|
||||
},
|
||||
// cM3dGCylS
|
||||
{
|
||||
/* Center */ 0.0f, 0.0f, 0.0f,
|
||||
/* Radius */ 150.0f,
|
||||
/* Height */ 150.0f,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* 00000078-000000F8 .text _delete__8daFire_cFv */
|
||||
bool daFire_c::_delete() {
|
||||
/* Nonmatching */
|
||||
if (field_0x8BC) {
|
||||
field_0x8BC->becomeInvalidEmitter();
|
||||
field_0x8BC = NULL;
|
||||
}
|
||||
if (field_0x8C0) {
|
||||
field_0x8C0->becomeInvalidEmitter();
|
||||
field_0x8C0 = NULL;
|
||||
}
|
||||
if (field_0x8C4 != NULL) {
|
||||
field_0x8C4->becomeInvalidEmitter();
|
||||
field_0x8C4 = NULL;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000000F8-00000518 .text CreateInit__8daFire_cFv */
|
||||
void daFire_c::CreateInit() {
|
||||
/* Nonmatching */
|
||||
BOOL daFire_c::CreateInit() {
|
||||
mSwitchNo = daFire_prm::getSwitch(this);
|
||||
mTrboxBit = daFire_prm::getTrboxBit(this);;
|
||||
|
||||
field_0x8EC = fopAcM_isSwitch(this, mSwitchNo) || dComIfGs_isTbox(mTrboxBit);
|
||||
|
||||
if (dComIfGs_isTbox(mTrboxBit)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mType = daFire_prm::getType(this);
|
||||
switch (mType) {
|
||||
case 0:
|
||||
if (mSwitchNo == 0xFF) {
|
||||
mType = 2;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
field_0x901 = 0x1E;
|
||||
mShape = daFire_prm::getShape(this);
|
||||
|
||||
switch (mShape) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
scale.z = 0.0f;
|
||||
break;
|
||||
case 2:
|
||||
scale.x = scale.y = scale.z = 1.25f;
|
||||
|
||||
if (field_0x8BC) {
|
||||
field_0x8BC->setGlobalScale(scale);
|
||||
}
|
||||
if (field_0x8C0) {
|
||||
field_0x8C0->setGlobalScale(scale);
|
||||
}
|
||||
if (field_0x8C4) {
|
||||
field_0x8C4->setGlobalScale(scale);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
mStts.Init(0xFF, 0xFF, this);
|
||||
if (mShape == 1) {
|
||||
for (s32 i = 0; i < 3; i++) {
|
||||
field_0x2CC[i].Set(l_cyl_src);
|
||||
field_0x2CC[i].SetStts(&mStts);
|
||||
field_0x2CC[i].SetR(50.0f);
|
||||
}
|
||||
} else {
|
||||
field_0x2CC[0].Set(l_cyl_src);
|
||||
field_0x2CC[0].SetStts(&mStts);
|
||||
}
|
||||
field_0x78C.Set(at_cyl_src);
|
||||
field_0x78C.SetStts(&mStts);
|
||||
|
||||
field_0x65C.Set(l_co_cyl_src);
|
||||
field_0x65C.SetStts(&mStts);
|
||||
|
||||
cXyz atVec = cXyz::Zero;
|
||||
field_0x2CC[0].SetAtVec(atVec);
|
||||
|
||||
fopAcM_offDraw(this);
|
||||
field_0x8D4.set(cXyz::BaseY);
|
||||
field_0x8E0.set(cXyz::BaseY);
|
||||
|
||||
if (mType == 0) {
|
||||
if (daFire_prm::getSound(this) == 0) {
|
||||
field_0x8FE = dComIfGp_evmng_getEventIdx("fire_off_cam");
|
||||
} else {
|
||||
field_0x8FE = dComIfGp_evmng_getEventIdx("fire_off_cam_ws");
|
||||
}
|
||||
field_0x8FC = dComIfGp_evmng_getEventIdx("fire_on_cam");
|
||||
} else if (mType == 1) {
|
||||
if (daFire_prm::getSound(this) == 0) {
|
||||
field_0x8FE = dComIfGp_evmng_getEventIdx("zenfire_cam");
|
||||
} else {
|
||||
field_0x8FE = dComIfGp_evmng_getEventIdx("zenfire_cam_ws");
|
||||
}
|
||||
field_0x8FC = -1;
|
||||
} else {
|
||||
field_0x8FE = -1;
|
||||
field_0x8FC = -1;
|
||||
}
|
||||
|
||||
if (mSwitchNo != 0xFF && fopAcM_isSwitch(this, mSwitchNo)) {
|
||||
field_0x902 = 0;
|
||||
execStopFire();
|
||||
} else {
|
||||
field_0x902 = 1;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000518-00000758 .text _create__8daFire_cFv */
|
||||
cPhs_State daFire_c::_create() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetupActor(this, daFire_c);
|
||||
|
||||
field_0x8BC = dComIfGp_particle_set(dPa_name::ID_COMMON_0461, ¤t.pos);
|
||||
field_0x8C0 = dComIfGp_particle_set(dPa_name::ID_COMMON_0462, ¤t.pos);
|
||||
field_0x8C4 = dComIfGp_particle_setProjection(dPa_name::ID_COMMON_445B, ¤t.pos);
|
||||
|
||||
if (!CreateInit()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
ctrlEffect();
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 000009F0-00000A70 .text _execute__8daFire_cFv */
|
||||
bool daFire_c::_execute() {
|
||||
/* Nonmatching */
|
||||
if (field_0x901 >= 0) {
|
||||
field_0x901--;
|
||||
}
|
||||
checkOrder();
|
||||
ctrlEffect();
|
||||
if (field_0x8FC != -1 && field_0x8FE != -1) {
|
||||
normal_proc();
|
||||
}
|
||||
eventOrder();
|
||||
checkCol();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000A70-00000AD8 .text search_wind__8daFire_cFv */
|
||||
void daFire_c::search_wind() {
|
||||
/* Nonmatching */
|
||||
fopAc_ac_c* pActor = fopAcM_SearchByName(PROC_WindTag);
|
||||
if (pActor) {
|
||||
field_0x8F0 = fopAcM_GetID(pActor);
|
||||
} else {
|
||||
field_0x8F0 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000AD8-00000E8C .text ctrlEffect__8daFire_cFv */
|
||||
void daFire_c::ctrlEffect() {
|
||||
/* Nonmatching */
|
||||
if (field_0x902 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
u8 flag = false;
|
||||
|
||||
search_wind();
|
||||
fopAc_ac_c* wind = fopAcM_SearchByID(field_0x8F0);
|
||||
|
||||
if (field_0x2CC[0].ChkTgHit()) {
|
||||
cCcD_Obj* hit_obj = field_0x2CC[0].GetTgHitObj();
|
||||
if (hit_obj) {
|
||||
if (hit_obj->ChkAtType(AT_TYPE_WIND) && wind != NULL && wind == field_0x2CC[0].GetTgHitAc()) {
|
||||
flag = true;
|
||||
} else {
|
||||
if (hit_obj->ChkAtType(AT_TYPE_WATER) || hit_obj->ChkAtType(AT_TYPE_ICE_ARROW)) {
|
||||
field_0x8D2 = 0x50;
|
||||
field_0x8D1 = 0;
|
||||
flag = true;
|
||||
execStopNowFire();
|
||||
dComIfGp_particle_set(dPa_name::ID_COMMON_0463, ¤t.pos);
|
||||
} else if (hit_obj->ChkAtType(AT_TYPE_WIND) && wind != field_0x2CC[0].GetTgHitAc()) {
|
||||
field_0x8E0 = *field_0x2CC[0].GetTgRVecP();
|
||||
|
||||
f32 dist_sq = (field_0x8E0.x * field_0x8E0.x + field_0x8E0.z * field_0x8E0.z) / 1000.0f;
|
||||
field_0x8E0.y = sqrt(dist_sq);
|
||||
if (!field_0x8E0.normalizeRS()) {
|
||||
field_0x8E0.set(0.0f, 1.0f, 0.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
field_0x2CC[0].ClrTgHit();
|
||||
} else {
|
||||
cLib_chaseF(&field_0x8E0.x, 0.0f, 0.025f);
|
||||
cLib_chaseF(&field_0x8E0.y, 1.0f, 0.025f);
|
||||
cLib_chaseF(&field_0x8E0.z, 0.0f, 0.025f);
|
||||
}
|
||||
|
||||
if (field_0x8D1 == 0 && field_0x8D2 != 0) {
|
||||
field_0x8D2--;
|
||||
flag = true;
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
execStopFire();
|
||||
} else {
|
||||
execPlayFire();
|
||||
fopAcM_seStart(this, JA_SE_OBJ_BAR_FRAME_BURN, 0);
|
||||
}
|
||||
|
||||
if (field_0x8EC != flag) {
|
||||
if (!flag) {
|
||||
fopAcM_seStart(this, JA_SE_OBJ_BAR_FRAME_ON , 0);
|
||||
} else {
|
||||
fopAcM_seStart(this, JA_SE_OBJ_BAR_FRAME_OFF , 0);
|
||||
}
|
||||
}
|
||||
|
||||
setDirParticle(&field_0x8E0);
|
||||
field_0x8EC = flag;
|
||||
}
|
||||
|
||||
/* 00000E8C-0000102C .text demo_proc__8daFire_cFv */
|
||||
void daFire_c::demo_proc() {
|
||||
/* Nonmatching */
|
||||
static char* action_table[] = {"WAIT", "ON", "OFF"};
|
||||
|
||||
s32 act_idx = dComIfGp_evmng_getMyActIdx(field_0x8F8, action_table, ARRAY_SIZE(action_table), FALSE, 0);
|
||||
switch (act_idx) {
|
||||
case 0:
|
||||
dComIfGp_evmng_cutEnd(field_0x8F8);
|
||||
break;
|
||||
case 1:
|
||||
if (field_0x902 == 0) {
|
||||
fopAcM_seStart(this, JA_SE_OBJ_BAR_FRAME_ON, 0);
|
||||
}
|
||||
execPlayFire();
|
||||
field_0x902 = 1;
|
||||
dComIfGp_evmng_cutEnd(field_0x8F8);
|
||||
break;
|
||||
case 2:
|
||||
if (field_0x8BC && field_0x8BC->getParticleNumber() != 0 && field_0x902) {
|
||||
fopAcM_seStart(this, JA_SE_OBJ_BAR_FRAME_OFF, 0);
|
||||
}
|
||||
execStopFire();
|
||||
field_0x902 = 0;
|
||||
dComIfGp_evmng_cutEnd(field_0x8F8);
|
||||
break;
|
||||
default:
|
||||
dComIfGp_evmng_cutEnd(field_0x8F8);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 0000102C-00001030 .text normal_proc__8daFire_cFv */
|
||||
void daFire_c::normal_proc() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00001030-000011A8 .text eventOrder__8daFire_cFv */
|
||||
void daFire_c::eventOrder() {
|
||||
/* Nonmatching */
|
||||
u8 flag = dComIfGs_isTbox(mTrboxBit);
|
||||
|
||||
if (mType == 1) {
|
||||
fopAc_ac_c* enemy = fopAcM_myRoomSearchEnemy(fopAcM_GetRoomNo(this));
|
||||
if (enemy == NULL) {
|
||||
if (cLib_calcTimer(&field_0x903) == 0) {
|
||||
flag = 1;
|
||||
}
|
||||
} else {
|
||||
field_0x903 = 5;
|
||||
}
|
||||
} else if (mType == 0 && dComIfGs_isSwitch(mSwitchNo, fopAcM_GetHomeRoomNo(this))) {
|
||||
flag = 1;
|
||||
}
|
||||
|
||||
if (field_0x8F4 == 1) {
|
||||
fopAcM_orderOtherEventId(this, field_0x8FC);
|
||||
eventInfo.onCondition(dEvtCnd_UNK2_e);
|
||||
} else if (field_0x8F4 == 2) {
|
||||
fopAcM_orderOtherEventId(this, field_0x8FE);
|
||||
eventInfo.onCondition(dEvtCnd_UNK2_e);
|
||||
} else if (field_0x8F4 == 0 && field_0x901 < 0 && field_0x8ED != flag) {
|
||||
if (flag) {
|
||||
field_0x8F4 = 2;
|
||||
} else {
|
||||
field_0x8F4 = 1;
|
||||
}
|
||||
}
|
||||
field_0x8ED = flag;
|
||||
}
|
||||
|
||||
/* 000011A8-000012AC .text checkOrder__8daFire_cFv */
|
||||
void daFire_c::checkOrder() {
|
||||
/* Nonmatching */
|
||||
static char* act_name[] = {"Fire", "Zenfire"};
|
||||
|
||||
if (!eventInfo.checkCommandDemoAccrpt()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((dComIfGp_evmng_startCheck(field_0x8FC) && field_0x8F4)
|
||||
|| (dComIfGp_evmng_startCheck(field_0x8FE) && field_0x8F4))
|
||||
{
|
||||
field_0x8F4 = 0;
|
||||
}
|
||||
|
||||
if ((field_0x8FC != -1 && dComIfGp_evmng_endCheck(field_0x8FC))
|
||||
|| (field_0x8FE != -1 && dComIfGp_evmng_endCheck(field_0x8FE)))
|
||||
{
|
||||
dComIfGp_event_reset();
|
||||
}
|
||||
|
||||
field_0x8F8 = dComIfGp_evmng_getMyStaffId(act_name[mType]);
|
||||
demo_proc();
|
||||
}
|
||||
|
||||
/* 000012AC-0000131C .text execStopFire__8daFire_cFv */
|
||||
void daFire_c::execStopFire() {
|
||||
/* Nonmatching */
|
||||
if (this->field_0x8BC) {
|
||||
field_0x8BC->stopCreateParticle();
|
||||
}
|
||||
if (this->field_0x8C0) {
|
||||
field_0x8C0->stopCreateParticle();
|
||||
}
|
||||
if (this->field_0x8C4) {
|
||||
field_0x8C4->stopCreateParticle();
|
||||
}
|
||||
field_0x2CC[0].OffAtSetBit();
|
||||
field_0x65C.OffCoSetBit();
|
||||
field_0x78C.OffAtSetBit();
|
||||
}
|
||||
|
||||
/* 0000131C-00001398 .text execStopNowFire__8daFire_cFv */
|
||||
void daFire_c::execStopNowFire() {
|
||||
/* Nonmatching */
|
||||
if (this->field_0x8BC) {
|
||||
field_0x8BC->deleteAllParticle();
|
||||
}
|
||||
if (this->field_0x8C0) {
|
||||
field_0x8C0->deleteAllParticle();
|
||||
}
|
||||
if (this->field_0x8C4) {
|
||||
field_0x8C4->deleteAllParticle();
|
||||
}
|
||||
field_0x2CC[0].OffAtSetBit();
|
||||
field_0x65C.OffCoSetBit();
|
||||
field_0x78C.OffAtSetBit();
|
||||
}
|
||||
|
||||
/* 00001398-00001408 .text execPlayFire__8daFire_cFv */
|
||||
void daFire_c::execPlayFire() {
|
||||
/* Nonmatching */
|
||||
if (this->field_0x8BC) {
|
||||
field_0x8BC->playCreateParticle();
|
||||
}
|
||||
if (this->field_0x8C0) {
|
||||
field_0x8C0->playCreateParticle();
|
||||
}
|
||||
if (this->field_0x8C4) {
|
||||
field_0x8C4->playCreateParticle();
|
||||
}
|
||||
field_0x2CC[0].OnAtSetBit();
|
||||
field_0x65C.OnCoSetBit();
|
||||
field_0x78C.OnAtSetBit();
|
||||
}
|
||||
|
||||
/* 00001408-000014E4 .text setDirParticle__8daFire_cFP4cXyz */
|
||||
void daFire_c::setDirParticle(cXyz*) {
|
||||
/* Nonmatching */
|
||||
void daFire_c::setDirParticle(cXyz* dir) {
|
||||
cLib_chaseF(&field_0x8D4.x, dir->x, 1.0f);
|
||||
cLib_chaseF(&field_0x8D4.y, dir->y, 1.0f);
|
||||
cLib_chaseF(&field_0x8D4.z, dir->z, 1.0f);
|
||||
|
||||
if (field_0x8BC) {
|
||||
field_0x8BC->setDirection(JGeometry::TVec3<f32>(field_0x8D4));
|
||||
}
|
||||
if (field_0x8C0) {
|
||||
field_0x8C0->setDirection(JGeometry::TVec3<f32>(field_0x8D4));
|
||||
}
|
||||
if (field_0x8C4) {
|
||||
field_0x8C4->setDirection(JGeometry::TVec3<f32>(field_0x8D4));
|
||||
}
|
||||
}
|
||||
|
||||
/* 000014E4-000015A4 .text checkCol__8daFire_cFv */
|
||||
void daFire_c::checkCol() {
|
||||
/* Nonmatching */
|
||||
cXyz current_pos(current.pos);
|
||||
current_pos.x -= 100.0f;
|
||||
|
||||
if (mShape != 1) {
|
||||
field_0x2CC[0].SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&field_0x2CC[0]);
|
||||
}
|
||||
field_0x78C.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&field_0x78C);
|
||||
field_0x65C.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&field_0x65C);
|
||||
}
|
||||
|
||||
/* 000015A4-000015AC .text _draw__8daFire_cFv */
|
||||
bool daFire_c::_draw() {
|
||||
/* Nonmatching */
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000015AC-000015CC .text daFire_Create__FPv */
|
||||
static cPhs_State daFire_Create(void*) {
|
||||
/* Nonmatching */
|
||||
static cPhs_State daFire_Create(void* i_this) {
|
||||
return ((daFire_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 000015CC-000015F0 .text daFire_Delete__FPv */
|
||||
static BOOL daFire_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daFire_Delete(void* i_this) {
|
||||
return ((daFire_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 000015F0-00001614 .text daFire_Draw__FPv */
|
||||
static BOOL daFire_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daFire_Draw(void* i_this) {
|
||||
return ((daFire_c*)i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 00001614-00001638 .text daFire_Execute__FPv */
|
||||
static BOOL daFire_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daFire_Execute(void* i_this) {
|
||||
return ((daFire_c*)i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 00001638-00001640 .text daFire_IsDelete__FPv */
|
||||
static BOOL daFire_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class daFireMethodTable = {
|
||||
|
||||
Reference in New Issue
Block a user