mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
d_a_obj_eff OK (#855)
* park * d_a_obj_eff OK * OK for everything but demo. * Update d_a_obj_eff.cpp * Refactor daObjEff smoke effect callbacks and cleanup Replaces direct member access and static_casts with virtual method calls for particle callbacks, improving type safety and maintainability. Updates function pointer arrays to use member function pointers with explicit class scope. Renames parameter enums for clarity and implements prm_get_type(). Changes mParticleCallback type to dPa_followEcallBack* for consistency. Also replaces direct alpha assignment with setGlobalAlpha(). * d_a_obj_eff OK for Kiosk / Demo * Update f_pc_base.h * Refactor particle effect functions to use setToon API Replaces conditional logic and direct member assignments in smoke effect functions with unified calls to dComIfGp_particle_setToon and emitter setter methods. This simplifies the code, removes version-specific branches, and improves maintainability.
This commit is contained in:
+1
-1
@@ -1506,7 +1506,7 @@ config.libs = [
|
||||
ActorRel(Equivalent, "d_a_obj_barrier", extra_cflags=['-pragma "nosyminline on"']), # weak func order
|
||||
ActorRel(NonMatching, "d_a_obj_bemos"),
|
||||
ActorRel(Matching, "d_a_obj_canon", extra_cflags=["-sym off"]),
|
||||
ActorRel(NonMatching, "d_a_obj_eff"),
|
||||
ActorRel(Matching, "d_a_obj_eff", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_obj_magmarock"),
|
||||
ActorRel(NonMatching, "d_a_obj_majyuu_door"),
|
||||
ActorRel(NonMatching, "d_a_obj_stair"),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef D_A_OBJ_EFF_H
|
||||
#define D_A_OBJ_EFF_H
|
||||
|
||||
#include "d/d_a_obj.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_particle.h"
|
||||
@@ -9,29 +10,40 @@
|
||||
namespace daObjEff {
|
||||
class Act_c : public fopAc_ac_c {
|
||||
public:
|
||||
typedef BOOL (Act_c::*Proc)();
|
||||
typedef void (Act_c::*voidProc)();
|
||||
typedef bool (Act_c::*HeapProc)();
|
||||
|
||||
enum Prm_e {
|
||||
PRM_TYPE_W = 8,
|
||||
PRM_TYPE_S = 0,
|
||||
};
|
||||
|
||||
static void make_barrel_smoke(cXyz* pos) { fopAcM_create(PROC_Obj_Eff, NULL, pos); }
|
||||
void make_land_smoke(cXyz*, float) {}
|
||||
void make_pinecone_smoke(cXyz*) {}
|
||||
void make_skull_smoke(cXyz*) {}
|
||||
void make_stool_smoke(cXyz*) {}
|
||||
void make_woodBox_smoke(cXyz*) {}
|
||||
void prm_get_type() const {}
|
||||
int prm_get_type() const {
|
||||
return daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S);
|
||||
}
|
||||
|
||||
void solidHeapCB(fopAc_ac_c*);
|
||||
void create_heap_barrel_smoke();
|
||||
void create_heap_stool_smoke();
|
||||
void create_heap_skull_smoke();
|
||||
void create_heap_land_smoke();
|
||||
void create_heap_pinecone_smoke();
|
||||
void create_heap_woodBox_smoke();
|
||||
void create_heap();
|
||||
void eff_set_barrel_smoke();
|
||||
void eff_set_stool_smoke();
|
||||
void eff_set_skull_smoke();
|
||||
void eff_set_land_smoke();
|
||||
void eff_set_pinecone_smoke();
|
||||
void eff_set_woodBox_smoke();
|
||||
void eff_set();
|
||||
static BOOL solidHeapCB(fopAc_ac_c*);
|
||||
bool create_heap_barrel_smoke();
|
||||
bool create_heap_stool_smoke();
|
||||
bool create_heap_skull_smoke();
|
||||
bool create_heap_land_smoke();
|
||||
bool create_heap_pinecone_smoke();
|
||||
bool create_heap_woodBox_smoke();
|
||||
bool create_heap();
|
||||
BOOL eff_set_barrel_smoke();
|
||||
BOOL eff_set_stool_smoke();
|
||||
BOOL eff_set_skull_smoke();
|
||||
BOOL eff_set_land_smoke();
|
||||
BOOL eff_set_pinecone_smoke();
|
||||
BOOL eff_set_woodBox_smoke();
|
||||
BOOL eff_set();
|
||||
cPhs_State _create();
|
||||
void remove_barrel_smoke();
|
||||
void remove_stool_smoke();
|
||||
@@ -51,25 +63,35 @@ namespace daObjEff {
|
||||
bool _execute();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
/* 0x290 */ int mProcIndex;
|
||||
/* 0x294 */ dPa_followEcallBack* mParticleCallback;
|
||||
};
|
||||
|
||||
class BarrelSmokeCB : public dPa_smokeEcallBack {
|
||||
public:
|
||||
BarrelSmokeCB();
|
||||
void execute(JPABaseEmitter*);
|
||||
public:
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ static const GXColor original_color;
|
||||
};
|
||||
|
||||
class StoolSmokeCB : public dPa_smokeEcallBack {
|
||||
public:
|
||||
StoolSmokeCB();
|
||||
void execute(JPABaseEmitter*);
|
||||
public:
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ static const GXColor original_color;
|
||||
};
|
||||
|
||||
class SkullSmokeCB : public dPa_smokeEcallBack {
|
||||
public:
|
||||
SkullSmokeCB();
|
||||
void execute(JPABaseEmitter*);
|
||||
public:
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ static const GXColor original_color;
|
||||
};
|
||||
|
||||
class LandSmokeCB : public dPa_smokeEcallBack {
|
||||
@@ -81,12 +103,18 @@ namespace daObjEff {
|
||||
public:
|
||||
PineconeSmokeCB();
|
||||
void execute(JPABaseEmitter*);
|
||||
public:
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ static const GXColor original_color;
|
||||
};
|
||||
|
||||
class WoodBoxSmokeCB : public dPa_smokeEcallBack {
|
||||
public:
|
||||
WoodBoxSmokeCB();
|
||||
void execute(JPABaseEmitter*);
|
||||
public:
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ static const GXColor original_color;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
+301
-99
@@ -2,261 +2,463 @@
|
||||
// Generated by dtk
|
||||
// Translation Unit: d_a_obj_eff.cpp
|
||||
//
|
||||
|
||||
#include "d/actor/d_a_obj_eff.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
|
||||
#include "weak_bss_936_to_1036.h" // IWYU pragma: keep
|
||||
#include "weak_data_1811.h" // IWYU pragma: keep
|
||||
#include "weak_data_2100_2080.h"
|
||||
|
||||
const GXColor daObjEff::BarrelSmokeCB::original_color = {0xAF, 0x96, 0x64, 0xFF};
|
||||
|
||||
|
||||
/* 000000EC-00000140 .text __ct__Q28daObjEff13BarrelSmokeCBFv */
|
||||
daObjEff::BarrelSmokeCB::BarrelSmokeCB() {
|
||||
/* Nonmatching */
|
||||
daObjEff::BarrelSmokeCB::BarrelSmokeCB() : dPa_smokeEcallBack(original_color, NULL, 0) {
|
||||
field_0x20 = 0x3c;
|
||||
}
|
||||
|
||||
/* 00000140-000001CC .text execute__Q28daObjEff13BarrelSmokeCBFP14JPABaseEmitter */
|
||||
void daObjEff::BarrelSmokeCB::execute(JPABaseEmitter*) {
|
||||
/* Nonmatching */
|
||||
void daObjEff::BarrelSmokeCB::execute(JPABaseEmitter *i_emitter) {
|
||||
field_0x20 -= 1;
|
||||
if (field_0x20 <= 0) {
|
||||
end();
|
||||
} else if (field_0x20 < 0x32) {
|
||||
i_emitter->setGlobalAlpha(field_0x20 * 3.6f);
|
||||
}
|
||||
}
|
||||
|
||||
const GXColor daObjEff::StoolSmokeCB::original_color = {0xAF, 0x96, 0x64, 0xFF};
|
||||
/* 000001CC-00000220 .text __ct__Q28daObjEff12StoolSmokeCBFv */
|
||||
daObjEff::StoolSmokeCB::StoolSmokeCB() {
|
||||
/* Nonmatching */
|
||||
daObjEff::StoolSmokeCB::StoolSmokeCB() : dPa_smokeEcallBack(original_color, NULL, 0) {
|
||||
field_0x20 = 0x3c;
|
||||
}
|
||||
|
||||
/* 00000220-000002AC .text execute__Q28daObjEff12StoolSmokeCBFP14JPABaseEmitter */
|
||||
void daObjEff::StoolSmokeCB::execute(JPABaseEmitter*) {
|
||||
/* Nonmatching */
|
||||
void daObjEff::StoolSmokeCB::execute(JPABaseEmitter *i_emitter) {
|
||||
field_0x20 -= 1;
|
||||
if (field_0x20 <= 0) {
|
||||
end();
|
||||
} else if (field_0x20 < 0x32) {
|
||||
i_emitter->setGlobalAlpha(field_0x20 * 3.6f);
|
||||
}
|
||||
}
|
||||
|
||||
const GXColor daObjEff::SkullSmokeCB::original_color = {0xA0, 0xA0, 0x80, 0xFF};
|
||||
/* 000002AC-00000300 .text __ct__Q28daObjEff12SkullSmokeCBFv */
|
||||
daObjEff::SkullSmokeCB::SkullSmokeCB() {
|
||||
/* Nonmatching */
|
||||
daObjEff::SkullSmokeCB::SkullSmokeCB() : dPa_smokeEcallBack(original_color, NULL, 0) {
|
||||
field_0x20 = 0x3c;
|
||||
}
|
||||
|
||||
/* 00000300-0000038C .text execute__Q28daObjEff12SkullSmokeCBFP14JPABaseEmitter */
|
||||
void daObjEff::SkullSmokeCB::execute(JPABaseEmitter*) {
|
||||
/* Nonmatching */
|
||||
void daObjEff::SkullSmokeCB::execute(JPABaseEmitter *i_emitter) {
|
||||
field_0x20 -= 1;
|
||||
if (field_0x20 <= 0) {
|
||||
end();
|
||||
} else if (field_0x20 < 0x32) {
|
||||
i_emitter->setGlobalAlpha(field_0x20 * 3.6f);
|
||||
}
|
||||
}
|
||||
|
||||
/* 0000038C-000003CC .text __ct__Q28daObjEff11LandSmokeCBFv */
|
||||
daObjEff::LandSmokeCB::LandSmokeCB() {
|
||||
/* Nonmatching */
|
||||
daObjEff::LandSmokeCB::LandSmokeCB() : dPa_smokeEcallBack(0) {
|
||||
}
|
||||
|
||||
const GXColor daObjEff::PineconeSmokeCB::original_color = {0x96, 0x78, 0x3C, 0xFF};
|
||||
/* 000003CC-00000420 .text __ct__Q28daObjEff15PineconeSmokeCBFv */
|
||||
daObjEff::PineconeSmokeCB::PineconeSmokeCB() {
|
||||
/* Nonmatching */
|
||||
daObjEff::PineconeSmokeCB::PineconeSmokeCB() : dPa_smokeEcallBack(original_color, NULL, 0) {
|
||||
field_0x20 = 0x3c;
|
||||
}
|
||||
|
||||
/* 00000420-000004AC .text execute__Q28daObjEff15PineconeSmokeCBFP14JPABaseEmitter */
|
||||
void daObjEff::PineconeSmokeCB::execute(JPABaseEmitter*) {
|
||||
/* Nonmatching */
|
||||
void daObjEff::PineconeSmokeCB::execute(JPABaseEmitter *i_emitter) {
|
||||
field_0x20 -= 1;
|
||||
if (field_0x20 <= 0) {
|
||||
end();
|
||||
} else if (field_0x20 < 0x32) {
|
||||
i_emitter->setGlobalAlpha(field_0x20 * 3.6f);
|
||||
}
|
||||
}
|
||||
|
||||
const GXColor daObjEff::WoodBoxSmokeCB::original_color = {0xAF, 0x96, 0x64, 0xFF};
|
||||
/* 000004AC-00000500 .text __ct__Q28daObjEff14WoodBoxSmokeCBFv */
|
||||
daObjEff::WoodBoxSmokeCB::WoodBoxSmokeCB() {
|
||||
/* Nonmatching */
|
||||
daObjEff::WoodBoxSmokeCB::WoodBoxSmokeCB() : dPa_smokeEcallBack(original_color, NULL, 0) {
|
||||
field_0x20 = 0x3c;
|
||||
}
|
||||
|
||||
/* 00000500-0000058C .text execute__Q28daObjEff14WoodBoxSmokeCBFP14JPABaseEmitter */
|
||||
void daObjEff::WoodBoxSmokeCB::execute(JPABaseEmitter*) {
|
||||
/* Nonmatching */
|
||||
void daObjEff::WoodBoxSmokeCB::execute(JPABaseEmitter *i_emitter) {
|
||||
field_0x20 -= 1;
|
||||
if (field_0x20 <= 0) {
|
||||
end();
|
||||
} else if (field_0x20 < 0x32) {
|
||||
i_emitter->setGlobalAlpha(field_0x20 * 3.6f);
|
||||
}
|
||||
}
|
||||
|
||||
/* 0000058C-000005B0 .text solidHeapCB__Q28daObjEff5Act_cFP10fopAc_ac_c */
|
||||
void daObjEff::Act_c::solidHeapCB(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::solidHeapCB(fopAc_ac_c *i_this) {
|
||||
return static_cast<Act_c *>(i_this)->create_heap();
|
||||
}
|
||||
|
||||
/* 000005B0-00000600 .text create_heap_barrel_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap_barrel_smoke() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap_barrel_smoke() {
|
||||
BarrelSmokeCB *barrel_smoke_cb = new BarrelSmokeCB();
|
||||
mParticleCallback = barrel_smoke_cb;
|
||||
return mParticleCallback != NULL;
|
||||
}
|
||||
|
||||
/* 00000600-00000650 .text create_heap_stool_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap_stool_smoke() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap_stool_smoke() {
|
||||
StoolSmokeCB *stool_smoke_cb = new StoolSmokeCB();
|
||||
mParticleCallback = stool_smoke_cb;
|
||||
return mParticleCallback != NULL;
|
||||
}
|
||||
|
||||
/* 00000650-000006A0 .text create_heap_skull_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap_skull_smoke() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap_skull_smoke() {
|
||||
SkullSmokeCB *skull_smoke_cb = new SkullSmokeCB();
|
||||
mParticleCallback = skull_smoke_cb;
|
||||
return mParticleCallback != NULL;
|
||||
}
|
||||
|
||||
/* 000006A0-000006F0 .text create_heap_land_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap_land_smoke() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap_land_smoke() {
|
||||
LandSmokeCB *land_smoke_cb = new LandSmokeCB();
|
||||
mParticleCallback = land_smoke_cb;
|
||||
return mParticleCallback != NULL;
|
||||
}
|
||||
|
||||
/* 000006F0-00000740 .text create_heap_pinecone_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap_pinecone_smoke() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap_pinecone_smoke() {
|
||||
PineconeSmokeCB *pinecone_smoke_cb = new PineconeSmokeCB();
|
||||
mParticleCallback = pinecone_smoke_cb;
|
||||
return mParticleCallback != NULL;
|
||||
}
|
||||
|
||||
/* 00000740-00000790 .text create_heap_woodBox_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap_woodBox_smoke() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap_woodBox_smoke() {
|
||||
WoodBoxSmokeCB *woodbox_smoke_cb = new WoodBoxSmokeCB();
|
||||
mParticleCallback = woodbox_smoke_cb;
|
||||
return mParticleCallback != NULL;
|
||||
}
|
||||
|
||||
/* 00000790-00000898 .text create_heap__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::create_heap() {
|
||||
/* Nonmatching */
|
||||
bool daObjEff::Act_c::create_heap() {
|
||||
static HeapProc proc[] = {
|
||||
&Act_c::create_heap_barrel_smoke,
|
||||
&Act_c::create_heap_stool_smoke,
|
||||
&Act_c::create_heap_skull_smoke,
|
||||
&Act_c::create_heap_land_smoke,
|
||||
&Act_c::create_heap_pinecone_smoke,
|
||||
&Act_c::create_heap_woodBox_smoke
|
||||
};
|
||||
|
||||
bool ret = false;
|
||||
if ((this->*proc[mProcIndex])()) {
|
||||
ret = true;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000898-00000998 .text eff_set_barrel_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set_barrel_smoke() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set_barrel_smoke() {
|
||||
static cXyz particle_scl(2.5f, 2.5f, 1.0f);
|
||||
JPABaseEmitter *emitter = dComIfGp_particle_setToon(dPa_name::ID_COMMON_2027, ¤t.pos, NULL, NULL, 0xB4, mParticleCallback, -1, NULL, NULL, &particle_scl);
|
||||
if (emitter != NULL) {
|
||||
emitter->setVolumeSize(0x28);
|
||||
emitter->setRate(20.0f);
|
||||
emitter->setMaxFrame(1);
|
||||
emitter->setAwayFromCenterSpeed(15.0f);
|
||||
emitter->setAwayFromAxisSpeed(10.0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 000009D4-00000AD0 .text eff_set_stool_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set_stool_smoke() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set_stool_smoke() {
|
||||
static cXyz particle_scl(2.5f, 2.5f, 1.0f);
|
||||
JPABaseEmitter *emitter = dComIfGp_particle_setToon(dPa_name::ID_COMMON_2027, ¤t.pos,
|
||||
NULL, NULL, 0xB4, mParticleCallback, -1, NULL, NULL, &particle_scl);
|
||||
if (emitter != NULL) {
|
||||
emitter->setVolumeSize(0x1E);
|
||||
emitter->setRate(15.0f);
|
||||
emitter->setMaxFrame(1);
|
||||
emitter->setAwayFromCenterSpeed(15.0f);
|
||||
emitter->setAwayFromAxisSpeed(10.0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 00000AD0-00000BC0 .text eff_set_skull_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set_skull_smoke() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set_skull_smoke() {
|
||||
static cXyz particle_scl(1.6f, 1.6f, 1.0f);
|
||||
JPABaseEmitter *emitter = dComIfGp_particle_setToon(dPa_name::ID_COMMON_2027, ¤t.pos,
|
||||
NULL, NULL, 0xB4, mParticleCallback, -1, NULL, NULL, &particle_scl);
|
||||
if (emitter != NULL) {
|
||||
emitter->setRate(10.0f);
|
||||
emitter->setMaxFrame(1);
|
||||
emitter->setAwayFromCenterSpeed(8.0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 00000BC0-00000D24 .text eff_set_land_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set_land_smoke() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set_land_smoke() {
|
||||
int ret;
|
||||
cXyz pScale;
|
||||
pScale.x = scale.x;
|
||||
pScale.y = scale.y;
|
||||
pScale.z = scale.z;
|
||||
|
||||
JPABaseEmitter *emitter = dComIfGp_particle_setToon(dPa_name::ID_COMMON_2027, ¤t.pos,
|
||||
NULL, &pScale, 0xB4, mParticleCallback, -1, NULL, NULL, NULL);
|
||||
if (emitter != NULL) {
|
||||
emitter->setVolumeSize(0x1E);
|
||||
emitter->setLifeTime(0x23);
|
||||
emitter->setRate(20.0f);
|
||||
emitter->setMaxFrame(1);
|
||||
emitter->setAwayFromCenterSpeed(10.0f);
|
||||
static JGeometry::TVec3<f32> em_scl(1.0f, 0.0f, 1.0f);
|
||||
emitter->setEmitterScale(em_scl);
|
||||
static JGeometry::TVec3<f32> em_trans(0.0f, 5.0f, 0.0f);
|
||||
emitter->setEmitterTranslation(em_trans);
|
||||
ret = true;
|
||||
} else {
|
||||
ret = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000D24-00000D98 .text eff_set_pinecone_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set_pinecone_smoke() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set_pinecone_smoke() {
|
||||
JPABaseEmitter *emitter = dComIfGp_particle_setToon(dPa_name::ID_SCENE_A16B, ¤t.pos,
|
||||
NULL, NULL, 0xB4, mParticleCallback, -1, NULL, NULL, NULL);
|
||||
return emitter != NULL;
|
||||
}
|
||||
|
||||
/* 00000D98-00000E80 .text eff_set_woodBox_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set_woodBox_smoke() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set_woodBox_smoke() {
|
||||
static cXyz particle_scl(2.5f, 2.5f, 1.0f);
|
||||
JPABaseEmitter *emitter = dComIfGp_particle_setToon(dPa_name::ID_COMMON_2027, ¤t.pos,
|
||||
NULL, NULL, 0xB4, mParticleCallback, -1, NULL, NULL, &particle_scl);
|
||||
if (emitter != NULL) {
|
||||
emitter->mRate = 30.0f;
|
||||
emitter->mMaxFrame = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 00000E80-00000F6C .text eff_set__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::eff_set() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEff::Act_c::eff_set() {
|
||||
static Proc proc[] = {
|
||||
&Act_c::eff_set_barrel_smoke,
|
||||
&Act_c::eff_set_stool_smoke,
|
||||
&Act_c::eff_set_skull_smoke,
|
||||
&Act_c::eff_set_land_smoke,
|
||||
&Act_c::eff_set_pinecone_smoke,
|
||||
&Act_c::eff_set_woodBox_smoke
|
||||
};
|
||||
|
||||
return (this->*proc[mProcIndex])();
|
||||
}
|
||||
|
||||
/* 00000F6C-00001030 .text _create__Q28daObjEff5Act_cFv */
|
||||
cPhs_State daObjEff::Act_c::_create() {
|
||||
/* Nonmatching */
|
||||
static const u32 heap_size[] = {
|
||||
0x00000040,
|
||||
0x00000040,
|
||||
0x00000040,
|
||||
0x00000020,
|
||||
0x00000040,
|
||||
0x00000040,
|
||||
};
|
||||
|
||||
mProcIndex = prm_get_type();
|
||||
fopAcM_SetupActor(this, daObjEff::Act_c);
|
||||
int phase = cPhs_COMPLEATE_e;
|
||||
if (fopAcM_entrySolidHeap(this, &solidHeapCB, heap_size[mProcIndex])) {
|
||||
if ((u8) eff_set() != 0) {
|
||||
fopDwTg_DrawQTo(&draw_tag);
|
||||
} else {
|
||||
phase = cPhs_ERROR_e;
|
||||
}
|
||||
} else {
|
||||
phase = cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 00001030-00001068 .text remove_barrel_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove_barrel_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback != NULL) {
|
||||
(mParticleCallback)->remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001068-000010A0 .text remove_stool_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove_stool_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback != NULL) {
|
||||
(mParticleCallback)->remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 000010A0-000010D8 .text remove_skull_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove_skull_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback != NULL) {
|
||||
(mParticleCallback)->remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 000010D8-00001110 .text remove_land_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove_land_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback != NULL) {
|
||||
(mParticleCallback)->remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001110-00001148 .text remove_pinecone_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove_pinecone_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback != NULL) {
|
||||
(mParticleCallback)->remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001148-00001180 .text remove_woodBox_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove_woodBox_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback != NULL) {
|
||||
(mParticleCallback)->remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001180-0000126C .text remove__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::remove() {
|
||||
/* Nonmatching */
|
||||
static voidProc proc[] = {
|
||||
&Act_c::remove_barrel_smoke,
|
||||
&Act_c::remove_stool_smoke,
|
||||
&Act_c::remove_skull_smoke,
|
||||
&Act_c::remove_land_smoke,
|
||||
&Act_c::remove_pinecone_smoke,
|
||||
&Act_c::remove_woodBox_smoke
|
||||
};
|
||||
(this->*proc[mProcIndex])();
|
||||
}
|
||||
|
||||
/* 0000126C-00001290 .text _delete__Q28daObjEff5Act_cFv */
|
||||
bool daObjEff::Act_c::_delete() {
|
||||
/* Nonmatching */
|
||||
remove();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001290-000012C0 .text die_barrel_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die_barrel_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback->isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 000012C0-000012F0 .text die_stool_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die_stool_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback->isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 000012F0-00001320 .text die_skull_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die_skull_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback->isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001320-00001350 .text die_land_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die_land_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback->isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001350-00001380 .text die_pinecone_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die_pinecone_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback->isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001380-000013B0 .text die_woodBox_smoke__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die_woodBox_smoke() {
|
||||
/* Nonmatching */
|
||||
if (mParticleCallback->isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 000013B0-0000149C .text die__Q28daObjEff5Act_cFv */
|
||||
void daObjEff::Act_c::die() {
|
||||
/* Nonmatching */
|
||||
static voidProc proc[] = {
|
||||
&Act_c::die_barrel_smoke,
|
||||
&Act_c::die_stool_smoke,
|
||||
&Act_c::die_skull_smoke,
|
||||
&Act_c::die_land_smoke,
|
||||
&Act_c::die_pinecone_smoke,
|
||||
&Act_c::die_woodBox_smoke
|
||||
};
|
||||
|
||||
(this->*proc[mProcIndex])();
|
||||
}
|
||||
|
||||
/* 0000149C-000014C0 .text _execute__Q28daObjEff5Act_cFv */
|
||||
bool daObjEff::Act_c::_execute() {
|
||||
/* Nonmatching */
|
||||
die();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
namespace daObjEff {
|
||||
namespace {
|
||||
/* 000014C0-000014E0 .text Mthd_Create__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
cPhs_State Mthd_Create(void* i_this) {
|
||||
return ((daObjEff::Act_c*)i_this)->_create();
|
||||
}
|
||||
namespace {
|
||||
/* 000014C0-000014E0 .text Mthd_Create__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
cPhs_State Mthd_Create(void *i_this) {
|
||||
return ((Act_c *) i_this)->_create();
|
||||
}
|
||||
|
||||
/* 000014E0-00001504 .text Mthd_Delete__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_Delete(void* i_this) {
|
||||
return ((daObjEff::Act_c*)i_this)->_delete();
|
||||
}
|
||||
/* 000014E0-00001504 .text Mthd_Delete__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_Delete(void *i_this) {
|
||||
return ((Act_c *) i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 00001504-00001528 .text Mthd_Execute__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_Execute(void* i_this) {
|
||||
return ((daObjEff::Act_c*)i_this)->_execute();
|
||||
}
|
||||
/* 00001504-00001528 .text Mthd_Execute__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_Execute(void *i_this) {
|
||||
return ((Act_c *) i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 00001528-00001530 .text Mthd_Draw__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_Draw(void*) {
|
||||
return TRUE;
|
||||
}
|
||||
/* 00001528-00001530 .text Mthd_Draw__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_Draw(void *) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001530-00001538 .text Mthd_IsDelete__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_IsDelete(void*) {
|
||||
return TRUE;
|
||||
}
|
||||
/* 00001530-00001538 .text Mthd_IsDelete__Q28daObjEff25@unnamed@d_a_obj_eff_cpp@FPv */
|
||||
BOOL Mthd_IsDelete(void *) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class Mthd_Table = {
|
||||
(process_method_func)Mthd_Create,
|
||||
(process_method_func)Mthd_Delete,
|
||||
(process_method_func)Mthd_Execute,
|
||||
(process_method_func)Mthd_IsDelete,
|
||||
(process_method_func)Mthd_Draw,
|
||||
};
|
||||
}; // namespace
|
||||
static actor_method_class Mthd_Table = {
|
||||
static_cast<process_method_func>(Mthd_Create),
|
||||
static_cast<process_method_func>(Mthd_Delete),
|
||||
static_cast<process_method_func>(Mthd_Execute),
|
||||
static_cast<process_method_func>(Mthd_IsDelete),
|
||||
static_cast<process_method_func>(Mthd_Draw),
|
||||
};
|
||||
}; // namespace
|
||||
}; // namespace daObjEff
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_Eff = {
|
||||
|
||||
Reference in New Issue
Block a user