diff options
Diffstat (limited to 'libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp')
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp | 689 |
1 files changed, 327 insertions, 362 deletions
diff --git a/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp b/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp index c2a7edb542..ec1309c703 100644 --- a/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp +++ b/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp @@ -1,466 +1,431 @@ // -// Generated By: dol2asm -// Translation Unit: object-particle +// object-particle // #include "JSystem/JStudio/JStudio_JParticle/object-particle.h" -#include "dol2asm.h" - -// -// Types: -// - -struct JStudio_JStage { - /* 8028A1F8 */ void transform_toGlobalFromLocal( - f32 (*)[4], JStudio::TControl::TTransform_translation_rotation_scaling const&, - JStage::TObject const*, u32); -}; - -// -// Forward References: -// - -extern "C" void -__ct__Q217JStudio_JParticle17TAdaptor_particleFPQ217JStudio_JParticle13TCreateObject(); -extern "C" void __dt__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_Fv(); -extern "C" void __dt__Q217JStudio_JParticle17TAdaptor_particleFv(); -extern "C" void adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFv(); -extern "C" void adaptor_do_end__Q217JStudio_JParticle17TAdaptor_particleFv(); -extern "C" void adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFUl(); -extern "C" void -adaptor_do_PARTICLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_BEGIN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_BEGIN_FADE_IN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_END_FADE_OUT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT_NODE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT_ENABLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT_FUNCTION__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_REPEAT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_ON_EXIT_NOT_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -execute__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter(); -extern "C" void -executeAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter(); -extern "C" void -draw__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter(); -extern "C" void -drawAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter(); -extern "C" void beginParticle_fadeIn___Q217JStudio_JParticle17TAdaptor_particleFv(); -extern "C" void endParticle_fadeOut___Q217JStudio_JParticle17TAdaptor_particleFUl(); - -// -// External References: -// - -extern "C" void __dt__18JPAEmitterCallBackFv(); -extern "C" void JPAGetXYZRotateMtx__FsssPA4_f(); -extern "C" void func_80280808(); -extern "C" void adaptor_do_begin__Q27JStudio8TAdaptorFv(); -extern "C" void adaptor_do_data__Q27JStudio8TAdaptorFPCvUlPCvUl(); -extern "C" void -adaptor_setVariableValue_immediate__Q27JStudio8TAdaptorFPCQ37JStudio8TAdaptor27TSetVariableValue_immediate(); -extern "C" void adaptor_getVariableValue_Vec__Q27JStudio8TAdaptorCFP3VecPCUl(); -extern "C" void adaptor_getVariableValue_GXColor__Q27JStudio8TAdaptorCFP8_GXColorPCUl(); -extern "C" void __dt__Q27JStudio17TAdaptor_particleFv(); -extern "C" void -transform_toGlobalFromLocal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl39TTransform_translation_rotation_scalingPCQ26JStage7TObjectUl(); -extern "C" void __ct__Q27JStudio14TVariableValueFv(); -extern "C" void __dl__FPv(); -extern "C" void __construct_array(); -extern "C" void __cvt_fp2unsigned(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); -extern "C" u8 const sauVariableValue_3_TRANSLATION_XYZ__Q27JStudio17TAdaptor_particle[12]; -extern "C" u8 const sauVariableValue_3_ROTATION_XYZ__Q27JStudio17TAdaptor_particle[12]; -extern "C" u8 const sauVariableValue_3_SCALING_XYZ__Q27JStudio17TAdaptor_particle[12]; -extern "C" u8 const sauVariableValue_4_COLOR_RGBA__Q27JStudio17TAdaptor_particle[16]; -extern "C" extern void* __vt__18JPAEmitterCallBack[7]; -extern "C" extern void* __vt__Q27JStudio17TAdaptor_particle[19]; -extern "C" extern void* __vt__Q27JStudio8TAdaptor[8]; -extern "C" extern u8 data_80451200[8]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C5AF0-803C5B0C 022C10 001C+00 3/3 0/0 0/0 .data - * __vt__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_ */ -SECTION_DATA extern void* __vt__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_[7] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_Fv, - (void*) - execute__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter, - (void*) - executeAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter, - (void*)draw__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter, - (void*) - drawAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter, -}; - -/* 803C5B0C-803C5B58 022C2C 004C+00 2/2 0/0 0/0 .data - * __vt__Q217JStudio_JParticle17TAdaptor_particle */ -SECTION_DATA extern void* __vt__Q217JStudio_JParticle17TAdaptor_particle[19] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q217JStudio_JParticle17TAdaptor_particleFv, - (void*)adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFv, - (void*)adaptor_do_begin__Q27JStudio8TAdaptorFv, - (void*)adaptor_do_end__Q217JStudio_JParticle17TAdaptor_particleFv, - (void*)adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFUl, - (void*)adaptor_do_data__Q27JStudio8TAdaptorFPCvUlPCvUl, - (void*) - adaptor_do_PARTICLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_BEGIN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_BEGIN_FADE_IN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_END_FADE_OUT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT_NODE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT_ENABLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT_FUNCTION__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_REPEAT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_ON_EXIT_NOT_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl, -}; +#include "JSystem/JStudio/JStudio_JStage/control.h" /* 8028E60C-8028E700 288F4C 00F4+00 0/0 1/1 0/0 .text * __ct__Q217JStudio_JParticle17TAdaptor_particleFPQ217JStudio_JParticle13TCreateObject */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JParticle::TAdaptor_particle::TAdaptor_particle( - JStudio_JParticle::TCreateObject* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028E60C.s" +JStudio_JParticle::TAdaptor_particle::TAdaptor_particle( + JStudio_JParticle::TCreateObject* param_1) : + pCreateObject_(param_1), + pJPAEmitter_(NULL), + field_0x1a8(this) { + field_0x1b4 = 0; + field_0x1b5 = 0; + field_0x1b6 = 0; + field_0x1b7 = 0; + field_0x1b8 = 0; + field_0x1bc = -1; + u32FadeTime_end = 0; + field_0x1c4 = 0; + field_0x1c8 = 0; + field_0x1cc = 0; + field_0x1d0 = NULL; + field_0x1d4 = -1; + field_0x1d8 = 0; + JUT_ASSERT(90, pCreateObject_!=0); } -#pragma pop - -/* 8028E700-8028E760 289040 0060+00 1/0 0/0 0/0 .text - * __dt__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::~TJPACallback_emitter_() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028E700.s" -} -#pragma pop /* 8028E760-8028E850 2890A0 00F0+00 1/0 0/0 0/0 .text * __dt__Q217JStudio_JParticle17TAdaptor_particleFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JParticle::TAdaptor_particle::~TAdaptor_particle() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/__dt__Q217JStudio_JParticle17TAdaptor_particleFv.s" +JStudio_JParticle::TAdaptor_particle::~TAdaptor_particle() { + if (pJPAEmitter_ != NULL) { + if (field_0x1b6 == 0) { + pCreateObject_->emitter_destroy(pJPAEmitter_); + } else if (field_0x1b4 != 0) { + pJPAEmitter_->setEmitterCallBackPtr(field_0x1a8.getOld()); + pJPAEmitter_->quitImmortalEmitter(); + } else { + pCreateObject_->emitter_destroy(pJPAEmitter_); + } + } } -#pragma pop - -/* ############################################################################################## */ -/* 80431540-804315D0 05E260 0090+00 1/1 0/0 0/0 .bss aoData$1265 */ -static u8 aoData[144]; - -/* 80455520-80455524 003B20 0004+00 1/1 0/0 0/0 .sdata2 @1361 */ -SECTION_SDATA2 static u8 lit_1361[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80455524-80455528 003B24 0004+00 1/1 0/0 0/0 .sdata2 @1362 */ -SECTION_SDATA2 static f32 lit_1362 = 1.0f; - -/* 80455528-80455530 003B28 0004+04 1/1 0/0 0/0 .sdata2 @1363 */ -SECTION_SDATA2 static f32 lit_1363[1 + 1 /* padding */] = { - 255.0f, - /* padding */ - 0.0f, -}; /* 8028E850-8028E97C 289190 012C+00 1/0 0/0 0/0 .text * adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_prepare() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFv.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_prepare() { + static JStudio::TAdaptor::TSetVariableValue_immediate aoData[18] = { + JStudio::TAdaptor::TSetVariableValue_immediate(0, 0.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(1, 0.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(2, 0.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(3, 0.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(4, 0.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(5, 0.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(6, 1.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(7, 1.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(8, 1.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(9, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(10, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(11, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(12, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(13, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(14, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(15, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(16, 255.0f), + JStudio::TAdaptor::TSetVariableValue_immediate(), + }; + adaptor_setVariableValue_immediate(aoData); } -#pragma pop /* 8028E97C-8028E980 2892BC 0004+00 1/0 0/0 0/0 .text * adaptor_do_end__Q217JStudio_JParticle17TAdaptor_particleFv */ void JStudio_JParticle::TAdaptor_particle::adaptor_do_end() { - /* empty function */ } /* 8028E980-8028EA68 2892C0 00E8+00 1/0 0/0 0/0 .text * adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_update(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFUl.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_update(u32 param_1) { + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(179, pObject != 0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(181, pControl != 0); + if (u32FadeTime_end != 0 && field_0x1c4 < u32FadeTime_end) { + JUT_ASSERT(187, state_isFade_()); + JUT_ASSERT(188, pJPAEmitter_ != 0); + field_0x1c4 += param_1; + if (field_0x1c4 >= u32FadeTime_end) { + switch (field_0x1b8) { + case 1: + field_0x1b8 = 2; + break; + case 3: + pCreateObject_->emitter_destroy(pJPAEmitter_); + pJPAEmitter_ = NULL; + field_0x1b8 = 0; + break; + } + u32FadeTime_end = 0; + field_0x1c4 = 0; + } + } else { + JUT_ASSERT(210, !state_isFade_()); + } + if (field_0x1b5 != 0 && field_0x1b7 != 0 && pJPAEmitter_ == NULL) { + beginParticle_fadeIn_(); + } } -#pragma pop /* 8028EA68-8028EA7C 2893A8 0014+00 1/0 0/0 0/0 .text * adaptor_do_PARTICLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::adaptor_do_PARTICLE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EA68.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARTICLE( + JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) { + if (param_1 == JStudio::data::UNK_0x19) { + JUT_ASSERT(232, uSize==4); + JUT_ASSERT(233, pContent!=0); + field_0x1bc = *(u32*)pContent; + } } -#pragma pop /* 8028EA7C-8028EAB0 2893BC 0034+00 1/0 0/0 0/0 .text * adaptor_do_BEGIN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::adaptor_do_BEGIN(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EA7C.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_BEGIN(JStudio::data::TEOperationData param_1, + const void* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x1: + JUT_ASSERT(253, uSize==0); + beginParticle_(); + break; + } } -#pragma pop /* 8028EAB0-8028EAF8 2893F0 0048+00 1/0 0/0 0/0 .text * adaptor_do_BEGIN_FADE_IN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_BEGIN_FADE_IN( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EAB0.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_BEGIN_FADE_IN( + JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(272, pContent!=0); + JUT_ASSERT(273, uSize==4); + beginParticle_fadeIn_(*(f32*)pContent); + break; + } } -#pragma pop /* 8028EAF8-8028EB24 289438 002C+00 1/0 0/0 0/0 .text * adaptor_do_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::adaptor_do_END(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EAF8.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_END(JStudio::data::TEOperationData param_1, + const void* pContent, u32 uSize) { + if (param_1 == JStudio::data::UNK_0x1) { + JUT_ASSERT(294, uSize==0); + endParticle_(); + } } -#pragma pop /* 8028EB24-8028EB6C 289464 0048+00 1/0 0/0 0/0 .text * adaptor_do_END_FADE_OUT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_END_FADE_OUT( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EB24.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_END_FADE_OUT( + JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(336, pContent!=0); + JUT_ASSERT(337, uSize==4); + endParticle_fadeOut_(*(f32*)pContent); + break; + } } -#pragma pop /* 8028EB6C-8028EBD8 2894AC 006C+00 1/0 0/0 0/0 .text * adaptor_do_PARENT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EB6C.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT( + JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(313, pContent!=0); + JUT_ASSERT(314, uSize==4); + field_0x1d0 = NULL; + const JStage::TSystem* pJSGSystem = pCreateObject_->get_pJSGSystem_(); + JUT_ASSERT(345, pJSGSystem!=0); + JStage::TObject* pJSGObject; + if (pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::TOBJ_ACTOR_UNK) == 0) { + JUT_ASSERT(354, pJSGObject!=0); + field_0x1d0 = pJSGObject; + } + break; + } } -#pragma pop /* 8028EBD8-8028EC58 289518 0080+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_NODE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EBD8.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_NODE( + JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x18: + if (field_0x1d0 != NULL) { + JUT_ASSERT(380, pContent!=0); + JUT_ASSERT(381, uSize==4); + field_0x1d4 = field_0x1d0->JSGFindNodeID((const char*)pContent); + if (field_0x1d4 == -1) { + return; + } + } + break; + case JStudio::data::UNK_0x19: + JUT_ASSERT(397, uSize==4); + JUT_ASSERT(396, pContent!=0); + field_0x1d4 = *(u32*)pContent; + break; + } } -#pragma pop /* 8028EC58-8028EC74 289598 001C+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_ENABLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_ENABLE( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EC58.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData param_1, + const void* pContent, u32 uSize) { + if (param_1 == JStudio::data::UNK_0x2) { + JUT_ASSERT(417, uSize==4); + JUT_ASSERT(418, pContent!=0); + field_0x1d8 = *(u32*)pContent ? 1 : 0; + } } -#pragma pop /* 8028EC74-8028EC88 2895B4 0014+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_FUNCTION__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_FUNCTION( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EC74.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData param_1, + const void* pContent, u32 uSize) { + if (param_1 == JStudio::data::UNK_0x2) { + JUT_ASSERT(439, uSize==4); + JUT_ASSERT(439, pContent!=0); + field_0x1cc = *(u32*)pContent; + } } -#pragma pop /* 8028EC88-8028ECA4 2895C8 001C+00 1/0 0/0 0/0 .text * adaptor_do_REPEAT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::adaptor_do_REPEAT(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028EC88.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_REPEAT(JStudio::data::TEOperationData param_1, + const void* pContent, u32 uSize) { + if (param_1 == JStudio::data::UNK_0x2) { + JUT_ASSERT(460, uSize==4); + JUT_ASSERT(461, pContent!=0); + field_0x1b5 = *(u32*)pContent ? 1 : 0; + } } -#pragma pop /* 8028ECA4-8028ECC0 2895E4 001C+00 1/0 0/0 0/0 .text * adaptor_do_ON_EXIT_NOT_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::adaptor_do_ON_EXIT_NOT_END( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028ECA4.s" +void JStudio_JParticle::TAdaptor_particle::adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData param_1, + const void* pContent, u32 uSize) { + if (param_1 == JStudio::data::UNK_0x2) { + JUT_ASSERT(460, uSize==4); + JUT_ASSERT(461, pContent!=0); + field_0x1b6 = *(u32*)pContent ? 1 : 0; + } } -#pragma pop - -/* ############################################################################################## */ -/* 80455530-80455538 003B30 0008+00 1/1 0/0 0/0 .sdata2 @1622 */ -SECTION_SDATA2 static f64 lit_1622 = 65536.0; - -/* 80455538-80455540 003B38 0008+00 1/1 0/0 0/0 .sdata2 @1623 */ -SECTION_SDATA2 static f64 lit_1623 = 360.0; - -/* 80455540-80455548 003B40 0008+00 1/1 0/0 0/0 .sdata2 @1624 */ -SECTION_SDATA2 static f64 lit_1624 = 1.0; - -/* 80455548-80455550 003B48 0008+00 1/1 0/0 0/0 .sdata2 @1625 */ -SECTION_SDATA2 static f64 lit_1625 = 255.0; - -/* 80455550-80455558 003B50 0008+00 2/2 0/0 0/0 .sdata2 @1629 */ -SECTION_SDATA2 static f64 lit_1629 = 4503599627370496.0 /* cast u32 to float */; /* 8028ECC0-8028F060 289600 03A0+00 1/0 0/0 0/0 .text * execute__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::execute(JPABaseEmitter* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028ECC0.s" +void +JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::execute(JPABaseEmitter* pJPAEmitter) { + JUT_ASSERT(518, pJPAEmitter==pThis_->pJPAEmitter_); + if (pJPAEmitter->isEnableDeleteEmitter()) { + pThis_->pCreateObject_->emitter_destroy(pJPAEmitter); + pThis_->pJPAEmitter_ = NULL; + pThis_->field_0x1b8 = 0; + pThis_->u32FadeTime_end = 0; + pThis_->field_0x1c4 = 0; + return; + } + const JStudio::TObject* pObject = pThis_->adaptor_getObject(); + JUT_ASSERT(534, pObject!=0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(536, pControl!=0); + TJPAEmitter_stopDrawParticle_ aTStack_21c(pJPAEmitter); + JStudio::TControl::TTransform_translation_rotation_scaling VStack_19c; + JStudio::TControl::TTransform_translation_rotation_scaling aTStack_1c0; + pThis_->adaptor_getVariableValue_Vec( + &VStack_19c.translation, + sauVariableValue_3_TRANSLATION_XYZ); + pThis_->adaptor_getVariableValue_Vec( + &VStack_19c.rotation, + sauVariableValue_3_ROTATION_XYZ); + pThis_->adaptor_getVariableValue_Vec( + &VStack_19c.scaling, + sauVariableValue_3_SCALING_XYZ); + if (pThis_->field_0x1d8 == 0) { + JStudio::TControl::TTransform_translation_rotation_scaling* pVVar9 = &VStack_19c; + switch(pThis_->field_0x1cc) { + case 0: + pVVar9 = pControl->transformOnSet_transform_ifEnabled(&VStack_19c, &aTStack_1c0); + break; + case 1: + break; + } + pJPAEmitter->setGlobalTranslation(pVVar9->translation); + int rotx = 65536.0 * (pVVar9->rotation.x / 360.0); + int roty = 65536.0 * (pVVar9->rotation.y / 360.0); + int rotz = 65536.0 * (pVVar9->rotation.z / 360.0); + pJPAEmitter->setGlobalRotation(JGeometry::TVec3<s16>(rotx, roty, rotz)); + pJPAEmitter->setGlobalScale(pVVar9->scaling); + } else { + Mtx afStack_1f0; + if (JStudio_JStage::transform_toGlobalFromLocal(afStack_1f0, VStack_19c, pThis_->field_0x1d0, + pThis_->field_0x1d4) == 0) + { + return; + } + pJPAEmitter->setGlobalSRTMatrix(afStack_1f0); + } + f64 alpha = 1.0; + u32 u32FadeTime_end = pThis_->u32FadeTime_end; + f64 dVar16 = u32FadeTime_end; + f64 dVar15 = pThis_->field_0x1c4; + switch(pThis_->field_0x1b8) { + case 1: + JUT_ASSERT(606, u32FadeTime_end>0); + alpha = dVar15 / dVar16; + break; + case 3: + JUT_ASSERT(611, u32FadeTime_end>0); + alpha = (dVar16 - dVar15) / dVar16; + } + + u8 globalAlpha = 255; + GXColor a_Stack_224; + pThis_->adaptor_getVariableValue_GXColor(&a_Stack_224, sauVariableValue_4_COLOR_RGBA); + alpha *= a_Stack_224.a; + if (alpha < 255.0) { + globalAlpha = alpha; + } + pJPAEmitter->setGlobalAlpha(globalAlpha); + aTStack_21c.set(NULL); + if (pOld != NULL) { + pOld->execute(pJPAEmitter); + } } -#pragma pop /* 8028F060-8028F098 2899A0 0038+00 1/0 0/0 0/0 .text * executeAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::executeAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028F060.s" +void +JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::executeAfter(JPABaseEmitter* pJPAEmitter) { + if (pOld != NULL) { + pOld->executeAfter(pJPAEmitter); + } } -#pragma pop /* 8028F098-8028F0D0 2899D8 0038+00 1/0 0/0 0/0 .text * draw__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::draw(JPABaseEmitter* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028F098.s" +void +JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::draw(JPABaseEmitter* pJPAEmitter) { + if (pOld != NULL) { + pOld->draw(pJPAEmitter); + } } -#pragma pop /* 8028F0D0-8028F108 289A10 0038+00 1/0 0/0 0/0 .text * drawAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::drawAfter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028F0D0.s" +void +JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::drawAfter(JPABaseEmitter* pJPAEmitter) { + if (pOld != NULL) { + pOld->drawAfter(pJPAEmitter); + } } -#pragma pop /* 8028F108-8028F1C0 289A48 00B8+00 3/3 0/0 0/0 .text * beginParticle_fadeIn___Q217JStudio_JParticle17TAdaptor_particleFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::beginParticle_fadeIn_() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028F108.s" +void JStudio_JParticle::TAdaptor_particle::beginParticle_fadeIn_() { + if (pJPAEmitter_ != NULL) { + pCreateObject_->emitter_destroy(pJPAEmitter_); + } + JPABaseEmitter* pEmitter = pCreateObject_->emitter_create(field_0x1bc); + pJPAEmitter_ = pEmitter; + if (pEmitter != NULL) { + field_0x1a8.setOld(pEmitter->getEmitterCallBackPtr()); + pEmitter->setEmitterCallBackPtr(&field_0x1a8); + pEmitter->becomeImmortalEmitter(); + field_0x1b7 = 1; + field_0x1b8 = 1; + if (field_0x1c8 == 0) { + field_0x1b8 = 2; + } + u32FadeTime_end = field_0x1c8; + field_0x1c4 = 0; + } } -#pragma pop /* 8028F1C0-8028F2E8 289B00 0128+00 1/1 0/0 0/0 .text * endParticle_fadeOut___Q217JStudio_JParticle17TAdaptor_particleFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JParticle::TAdaptor_particle::endParticle_fadeOut_(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JParticle/object-particle/func_8028F1C0.s" +void JStudio_JParticle::TAdaptor_particle::endParticle_fadeOut_(u32 param_1) { + if (pJPAEmitter_ == NULL) { + return; + } + if (param_1 == 0) { + pCreateObject_->emitter_destroy(pJPAEmitter_); + pJPAEmitter_ = NULL; + field_0x1b8 = 0; + u32FadeTime_end = 0; + field_0x1c4 = 0; + return; + } + u8 eState_old = field_0x1b8 & 0xff; + field_0x1b8 = 3; + if (field_0x1c4 == 0) { + u32FadeTime_end = param_1; + return; + } + JUT_ASSERT(735, state_isFade_(eState_old)); + u32 u32Denominator = 0; + + switch(eState_old) { + case 1: + u32Denominator = field_0x1c4; + break; + case 3: + u32Denominator = u32FadeTime_end - field_0x1c4; + break; + } + JUT_ASSERT(793, u32Denominator!=0); + u32FadeTime_end = ((f64)param_1 * (f64)u32FadeTime_end) / u32Denominator; + field_0x1c4 = u32FadeTime_end - param_1; } -#pragma pop |
