summaryrefslogtreecommitdiff
path: root/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp')
-rw-r--r--libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp689
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