summaryrefslogtreecommitdiff
path: root/libs/JSystem/JStudio/JStudio_JParticle/control.cpp
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-08-22 23:17:24 +0300
committerGitHub <noreply@github.com>2024-08-22 13:17:24 -0700
commitd3420ffe8d38185b66cb67a6605fb3d89cb72b36 (patch)
treed205cdabe6f717090805af9ba5d6414b91d97f75 /libs/JSystem/JStudio/JStudio_JParticle/control.cpp
parent18f4489dd6e7996152bc385ec89a340dccaafe8a (diff)
jstudio particle and sound OK (#2194)
* Work on object-sound * object-particle OK * object-sound OK * JStudio_JAudio2 control OK * JStudio_JParticle control OK * JStage object OK * JStage ambient light OK
Diffstat (limited to 'libs/JSystem/JStudio/JStudio_JParticle/control.cpp')
-rw-r--r--libs/JSystem/JStudio/JStudio_JParticle/control.cpp154
1 files changed, 43 insertions, 111 deletions
diff --git a/libs/JSystem/JStudio/JStudio_JParticle/control.cpp b/libs/JSystem/JStudio/JStudio_JParticle/control.cpp
index 573cd248e8..c4d3abac07 100644
--- a/libs/JSystem/JStudio/JStudio_JParticle/control.cpp
+++ b/libs/JSystem/JStudio/JStudio_JParticle/control.cpp
@@ -1,136 +1,68 @@
//
-// Generated By: dol2asm
-// Translation Unit: control
+// control
//
#include "JSystem/JStudio/JStudio_JParticle/control.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void __dt__Q217JStudio_JParticle13TCreateObjectFv();
-extern "C" void
-create__Q217JStudio_JParticle13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object();
-extern "C" void emitter_create__Q217JStudio_JParticle13TCreateObjectFUl();
-extern "C" void emitter_destroy__Q217JStudio_JParticle13TCreateObjectFP14JPABaseEmitter();
-extern "C" void
-createObject_JPA_PARTICLE___Q217JStudio_JParticle13TCreateObjectFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ217JStudio_JParticle13TCreateObject();
-
-//
-// External References:
-//
-
-extern "C" void func_8027DEBC();
-extern "C" void forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter();
-extern "C" void __dt__Q27JStudio13TCreateObjectFv();
-extern "C" void
-__ct__Q27JStudio16TObject_particleFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio17TAdaptor_particle();
-extern "C" void
-__ct__Q217JStudio_JParticle17TAdaptor_particleFPQ217JStudio_JParticle13TCreateObject();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803C5AD8-803C5AF0 022BF8 0018+00 1/1 1/1 0/0 .data __vt__Q217JStudio_JParticle13TCreateObject
- */
-SECTION_DATA extern void* __vt__Q217JStudio_JParticle13TCreateObject[6] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__Q217JStudio_JParticle13TCreateObjectFv,
- (void*)
- create__Q217JStudio_JParticle13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object,
- (void*)emitter_create__Q217JStudio_JParticle13TCreateObjectFUl,
- (void*)emitter_destroy__Q217JStudio_JParticle13TCreateObjectFP14JPABaseEmitter,
-};
+#include "JSystem/JParticle/JPAEmitterManager.h"
+#include "JSystem/JGadget/pointer.h"
/* 8028E3A0-8028E400 288CE0 0060+00 1/0 1/1 0/0 .text __dt__Q217JStudio_JParticle13TCreateObjectFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm JStudio_JParticle::TCreateObject::~TCreateObject() {
- nofralloc
-#include "asm/JSystem/JStudio/JStudio_JParticle/control/__dt__Q217JStudio_JParticle13TCreateObjectFv.s"
-}
-#pragma pop
+JStudio_JParticle::TCreateObject::~TCreateObject() {}
/* 8028E400-8028E474 288D40 0074+00 1/0 1/0 0/0 .text
* create__Q217JStudio_JParticle13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool
-JStudio_JParticle::TCreateObject::create(JStudio::TObject** param_0,
- JStudio::stb::data::TParse_TBlock_object const& param_1) {
- nofralloc
-#include "asm/JSystem/JStudio/JStudio_JParticle/control/func_8028E400.s"
+bool
+JStudio_JParticle::TCreateObject::create(JStudio::TObject** ppObject,
+ JStudio::stb::data::TParse_TBlock_object const& param_2) {
+ JUT_ASSERT(40, ppObject!=0);
+ CreateFunc func;
+ switch (param_2.get_type()) {
+ case 'JPTC':
+ func = createObject_JPA_PARTICLE_;
+ break;
+ default:
+ return false;
+ }
+ *ppObject = func(param_2, this);
+ return true;
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 8039ABA8-8039ABB8 027208 000C+04 1/1 0/0 0/0 .rodata @1172 */
-SECTION_RODATA static u8 const lit_1172[12 + 4 /* padding */] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x8039ABA8, &lit_1172);
/* 8028E474-8028E4E4 288DB4 0070+00 1/0 0/0 0/0 .text
* emitter_create__Q217JStudio_JParticle13TCreateObjectFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JStudio_JParticle::TCreateObject::emitter_create(u32 param_0) {
- nofralloc
-#include "asm/JSystem/JStudio/JStudio_JParticle/control/emitter_create__Q217JStudio_JParticle13TCreateObjectFUl.s"
+JPABaseEmitter* JStudio_JParticle::TCreateObject::emitter_create(u32 param_1) {
+ JGeometry::TVec3<f32> local_08;
+ Vec local_1c = {0.0f, 0.0f, 0.0f};
+ local_08 = local_1c;
+ return pJPAEmitterManager_->createSimpleEmitterID(
+ local_08, param_1 & 0xffff, (param_1 >> 24) & 0xff, (param_1 >> 16) & 0xff, NULL, NULL);
}
-#pragma pop
/* 8028E4E4-8028E508 288E24 0024+00 1/0 1/0 0/0 .text
* emitter_destroy__Q217JStudio_JParticle13TCreateObjectFP14JPABaseEmitter */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JStudio_JParticle::TCreateObject::emitter_destroy(JPABaseEmitter* param_0) {
- nofralloc
-#include "asm/JSystem/JStudio/JStudio_JParticle/control/emitter_destroy__Q217JStudio_JParticle13TCreateObjectFP14JPABaseEmitter.s"
+void JStudio_JParticle::TCreateObject::emitter_destroy(JPABaseEmitter* pEmitter) {
+ pJPAEmitterManager_->forceDeleteEmitter(pEmitter);
}
-#pragma pop
/* 8028E508-8028E60C 288E48 0104+00 1/1 0/0 0/0 .text
* createObject_JPA_PARTICLE___Q217JStudio_JParticle13TCreateObjectFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ217JStudio_JParticle13TCreateObject
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JStudio_JParticle::TCreateObject::createObject_JPA_PARTICLE_(
- JStudio::stb::data::TParse_TBlock_object const& param_0,
- JStudio_JParticle::TCreateObject* param_1) {
- nofralloc
-#include "asm/JSystem/JStudio/JStudio_JParticle/control/func_8028E508.s"
+JStudio::TObject* JStudio_JParticle::TCreateObject::createObject_JPA_PARTICLE_(
+ JStudio::stb::data::TParse_TBlock_object const& param_1,
+ JStudio_JParticle::TCreateObject* param_2) {
+ JStudio_JParticle::TAdaptor_particle* adaptor = new JStudio_JParticle::TAdaptor_particle(param_2);
+ if (adaptor == NULL) {
+ return NULL;
+ }
+ JGadget::TPointer_delete<JStudio_JParticle::TAdaptor_particle> deleteGuard(adaptor);
+ adaptor->set_bPermit_onExit_notEnd_(param_2->isPermit_onExit_notEnd());
+ JStudio::TObject_particle* particle =
+ JStudio::TCreateObject::createFromAdaptor<JStudio_JParticle::TAdaptor_particle>(param_1,
+ adaptor);
+ if (particle == NULL) {
+ return NULL;
+ }
+ deleteGuard.set(NULL);
+ return particle;
}
-#pragma pop