// // Generated By: dol2asm // Translation Unit: JPAEmitterManager // #include "dol2asm.h" #include "dolphin/types.h" #include "JSystem/JParticle/JPAEmitterManager.h" // // Types: // struct JSUPtrLink { /* 802DBDFC */ // False False // void* False // void False JSUPtrLink(void*); /* 802DBE14 */ // False False ~JSUPtrLink(); }; struct JSUPtrList { /* 802DBEAC */ // False False ~JSUPtrList(); /* 802DBF14 */ // False False void initiate(); /* 802DBF4C */ // False False // JSUPtrLink* False // JSUPtrLink False void append(JSUPtrLink*); /* 802DBFF0 */ // False False // JSUPtrLink* False // JSUPtrLink False void prepend(JSUPtrLink*); /* 802DC15C */ // False False // JSUPtrLink* False // JSUPtrLink False void remove(JSUPtrLink*); }; template struct JSUList { }; /* JSUList */ struct JSUList__template1 { /* 8027E51C */ // False True JSUList__template1(); /* 8027E598 */ // False True ~JSUList__template1(); }; struct JPAResourceManager { /* 80273E68 */ // False False // u16 False void getResource(u16) const; }; struct JPAEmitterWorkData { }; struct JKRHeap { }; struct JPAParticleCallBack { }; struct JPADrawInfo { }; struct JPAEmitterCallBack { }; struct JPABaseEmitter; struct JGeometry { template struct TVec3 { }; /* TVec3 */ struct TVec3__template0 { }; }; struct JPAEmitterManager { /* 8027DCA0 */ // False False // u32 False // u32 False // JKRHeap* False // JKRHeap False // u8 False // u8 False JPAEmitterManager(u32, u32, JKRHeap*, u8, u8); /* 8027DEBC */ // False True // JGeometry::TVec3 const& False // JGeometry::TVec3 const False // JGeometry::TVec3 True // f32 False // u16 False // u8 False // u8 False // JPAEmitterCallBack* False // JPAEmitterCallBack False // JPAParticleCallBack* False // JPAParticleCallBack False void createSimpleEmitterID(JGeometry::TVec3 const&, u16, u8, u8, JPAEmitterCallBack*, JPAParticleCallBack*); /* 8027DFA0 */ // False False // u8 False void calc(u8); /* 8027E028 */ // False False // JPADrawInfo const* False // JPADrawInfo const False // JPADrawInfo False // u8 False void draw(JPADrawInfo const*, u8); /* 8027E220 */ // False False void forceDeleteAllEmitter(); /* 8027E278 */ // True False // u8 False void forceDeleteGroupEmitter(u8); /* 8027E2D8 */ // False False // JPABaseEmitter* False // JPABaseEmitter False void forceDeleteEmitter(JPABaseEmitter*); /* 8027E344 */ // False False // JPAResourceManager* False // JPAResourceManager False // u8 False void entryResourceManager(JPAResourceManager*, u8); /* 8027E354 */ // False False // u8 False void clearResourceManager(u8); /* 8027E3F4 */ // True False void calcYBBCam(); }; struct JPAResource; struct JPABaseEmitter { /* 8027E5EC */ // True False ~JPABaseEmitter(); /* 8027E64C */ // True False JPABaseEmitter(); /* 8027E6EC */ // False False // JPAEmitterManager* False // JPAEmitterManager False // JPAResource* False // JPAResource False void init(JPAEmitterManager*, JPAResource*); /* 8027EC60 */ // False False void deleteAllParticle(); }; struct JPAResource { /* 802755E8 */ // False False // JPAEmitterWorkData* False // JPAEmitterWorkData False // JPABaseEmitter* False // JPABaseEmitter False void calc(JPAEmitterWorkData*, JPABaseEmitter*); /* 80275A94 */ // False False // JPAEmitterWorkData* False // JPAEmitterWorkData False // JPABaseEmitter* False // JPABaseEmitter False void draw(JPAEmitterWorkData*, JPABaseEmitter*); }; template struct JPANode { }; /* JPANode */ struct JPANode__template0 { /* 8027E54C */ // False True ~JPANode__template0(); /* 8027E588 */ // False True JPANode__template0(); }; // // Forward References: // // False False // u32 False // u32 False // JKRHeap* False // JKRHeap False // u8 False // u8 False extern "C" void __ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc(); // False True // JGeometry::TVec3 const& False // JGeometry::TVec3 const False // JGeometry::TVec3 True // f32 False // u16 False // u8 False // u8 False // JPAEmitterCallBack* False // JPAEmitterCallBack False // JPAParticleCallBack* False // JPAParticleCallBack False extern "C" void func_8027DEBC(); // False False // u8 False extern "C" void calc__17JPAEmitterManagerFUc(); // False False // JPADrawInfo const* False // JPADrawInfo const False // JPADrawInfo False // u8 False extern "C" void draw__17JPAEmitterManagerFPC11JPADrawInfoUc(); // False False extern "C" void forceDeleteAllEmitter__17JPAEmitterManagerFv(); // True False // u8 False extern "C" void forceDeleteGroupEmitter__17JPAEmitterManagerFUc(); // False False // JPABaseEmitter* False // JPABaseEmitter False extern "C" void forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter(); // False False // JPAResourceManager* False // JPAResourceManager False // u8 False extern "C" void entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc(); // False False // u8 False extern "C" void clearResourceManager__17JPAEmitterManagerFUc(); // True False extern "C" void calcYBBCam__17JPAEmitterManagerFv(); // False True extern "C" void func_8027E51C(); // False True extern "C" void func_8027E54C(); // False True extern "C" void func_8027E588(); // False True extern "C" void func_8027E598(); // True False extern "C" void __dt__14JPABaseEmitterFv(); // True False extern "C" void __ct__14JPABaseEmitterFv(); // // External References: // // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False void* operator new(u32, JKRHeap*, int); // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False void* operator new[](u32, JKRHeap*, int); // False False // void False // void* False // void False void operator delete(void*); // False False // u16 False extern "C" void getResource__18JPAResourceManagerCFUs(); // False False // JPAEmitterWorkData* False // JPAEmitterWorkData False // JPABaseEmitter* False // JPABaseEmitter False extern "C" void calc__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter(); // False False // JPAEmitterWorkData* False // JPAEmitterWorkData False // JPABaseEmitter* False // JPABaseEmitter False extern "C" void draw__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter(); // False False // JPAEmitterManager* False // JPAEmitterManager False // JPAResource* False // JPAResource False extern "C" void init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource(); // False False extern "C" void deleteAllParticle__14JPABaseEmitterFv(); // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False extern "C" void* __nw__FUlP7JKRHeapi(); // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False extern "C" void* __nwa__FUlP7JKRHeapi(); // False False // void False // void* False // void False extern "C" void __dl__FPv(); // False False // void* False // void False extern "C" void __ct__10JSUPtrLinkFPv(); // False False extern "C" void __dt__10JSUPtrLinkFv(); // False False extern "C" void __dt__10JSUPtrListFv(); // False False extern "C" void initiate__10JSUPtrListFv(); // False False // JSUPtrLink* False // JSUPtrLink False extern "C" void append__10JSUPtrListFP10JSUPtrLink(); // False False // JSUPtrLink* False // JSUPtrLink False extern "C" void prepend__10JSUPtrListFP10JSUPtrLink(); // False False // JSUPtrLink* False // JSUPtrLink False extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); // False False extern "C" void PSMTXCopy(); // False False extern "C" void GXSetVtxDesc(); // False False extern "C" void GXClearVtxDesc(); // False False extern "C" void GXSetVtxAttrFmt(); // False False extern "C" void GXEnableTexOffsets(); // False False extern "C" void GXSetCullMode(); // False False extern "C" void GXSetCoPlanar(); // False False extern "C" void GXSetNumChans(); // False False extern "C" void GXSetChanCtrl(); // False False extern "C" void GXSetTevColorOp(); // False False extern "C" void GXSetTevAlphaOp(); // False False extern "C" void GXSetCurrentMtx(); // False False extern "C" void __construct_new_array(); // False False extern "C" void _savegpr_24(); // False False extern "C" void _savegpr_26(); // False False extern "C" void _savegpr_27(); // False False extern "C" void _savegpr_29(); // False False extern "C" void _restgpr_24(); // False False extern "C" void _restgpr_26(); // False False extern "C" void _restgpr_27(); // False False extern "C" void _restgpr_29(); extern "C" extern u32 __float_epsilon; // // Declarations: // /* 8027DCA0-8027DEBC 021C+00 s=0 e=1 z=0 None .text __ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc */ // 8027DCB0: 803621D0 (_savegpr_26) // 8027DCD0: 802DBF14 (initiate__10JSUPtrListFv) // 8027DD08: 802CED10 (__nwa__FUlP7JKRHeapi) // 8027DD0C: 8027E64C (__ct__14JPABaseEmitterFv) // 8027DD10: 8027E64C (__ct__14JPABaseEmitterFv) // 8027DD14: 8027E5EC (__dt__14JPABaseEmitterFv) // 8027DD18: 8027E5EC (__dt__14JPABaseEmitterFv) // 8027DD24: 80361F14 (__construct_new_array) // 8027DD44: 802DBFF0 (prepend__10JSUPtrListFP10JSUPtrLink) // 8027DD70: 802CED10 (__nwa__FUlP7JKRHeapi) // 8027DD74: 8027E588 (func_8027E588) // 8027DD78: 8027E588 (func_8027E588) // 8027DD7C: 8027E54C (func_8027E54C) // 8027DD80: 8027E54C (func_8027E54C) // 8027DD8C: 80361F14 (__construct_new_array) // 8027DE14: 802CED10 (__nwa__FUlP7JKRHeapi) // 8027DE18: 8027E51C (func_8027E51C) // 8027DE1C: 8027E51C (func_8027E51C) // 8027DE20: 8027E598 (func_8027E598) // 8027DE24: 8027E598 (func_8027E598) // 8027DE30: 80361F14 (__construct_new_array) // 8027DE48: 802CED10 (__nwa__FUlP7JKRHeapi) // 8027DE88: 802CEC98 (__nw__FUlP7JKRHeapi) // 8027DEA8: 8036221C (_restgpr_26) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u32 False // u32 False // JKRHeap* False // JKRHeap False // u8 False // u8 False asm JPAEmitterManager::JPAEmitterManager(u32 param_0, u32 param_1, JKRHeap* param_2, u8 param_3, u8 param_4) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/__ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc.s" } #pragma pop /* 8027DEBC-8027DFA0 00E4+00 s=0 e=3 z=0 None .text createSimpleEmitterID__17JPAEmitterManagerFRCQ29JGeometry8TVec3UsUcUcP18JPAEmitterCallBackP19JPAParticleCallBack */ // 8027DECC: 803621C8 (_savegpr_24) // 8027DEF8: 80273E68 (getResource__18JPAResourceManagerCFUs) // 8027DF1C: 802DC15C (remove__10JSUPtrListFP10JSUPtrLink) // 8027DF34: 802DBF4C (append__10JSUPtrListFP10JSUPtrLink) // 8027DF48: 8027E6EC (init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource) // 8027DF8C: 80362214 (_restgpr_24) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False True // JGeometry::TVec3 const& False // JGeometry::TVec3 const False // JGeometry::TVec3 True // f32 False // u16 False // u8 False // u8 False // JPAEmitterCallBack* False // JPAEmitterCallBack False // JPAParticleCallBack* False // JPAParticleCallBack False asm void JPAEmitterManager::createSimpleEmitterID(JGeometry::TVec3 const& param_0, u16 param_1, u8 param_2, u8 param_3, JPAEmitterCallBack* param_4, JPAParticleCallBack* param_5) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/func_8027DEBC.s" } #pragma pop /* 8027DFA0-8027E028 0088+00 s=0 e=3 z=0 None .text calc__17JPAEmitterManagerFUc */ // 8027DFB0: 803621DC (_savegpr_29) // 8027DFE0: 802755E8 (calc__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter) // 8027E000: 8027E2D8 (forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter) // 8027E014: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u8 False asm void JPAEmitterManager::calc(u8 param_0) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/calc__17JPAEmitterManagerFUc.s" } #pragma pop /* 8027E028-8027E220 01F8+00 s=0 e=1 z=0 None .text draw__17JPAEmitterManagerFPC11JPADrawInfoUc */ // 8027E038: 803621DC (_savegpr_29) // 8027E054: 803464B0 (PSMTXCopy) // 8027E064: 803464B0 (PSMTXCopy) // 8027E06C: 8027E3F4 (calcYBBCam__17JPAEmitterManagerFv) // 8027E088: 8035F2AC (GXSetTevColorOp) // 8027E0A4: 8035F314 (GXSetTevAlphaOp) // 8027E0B4: 8035C93C (GXEnableTexOffsets) // 8027E0C4: 8035C93C (GXEnableTexOffsets) // 8027E0D4: 8035C93C (GXEnableTexOffsets) // 8027E0DC: 8035C984 (GXSetCullMode) // 8027E0E4: 8035C9AC (GXSetCoPlanar) // 8027E0E8: 8035B58C (GXClearVtxDesc) // 8027E0F4: 8035AEB8 (GXSetVtxDesc) // 8027E100: 8035AEB8 (GXSetVtxDesc) // 8027E118: 8035B5C4 (GXSetVtxAttrFmt) // 8027E130: 8035B5C4 (GXSetVtxAttrFmt) // 8027E148: 8035B5C4 (GXSetVtxAttrFmt) // 8027E160: 8035B5C4 (GXSetVtxAttrFmt) // 8027E168: 803602EC (GXSetCurrentMtx) // 8027E188: 8035DB6C (GXSetChanCtrl) // 8027E1A8: 8035DB6C (GXSetChanCtrl) // 8027E1B0: 8035DB30 (GXSetNumChans) // 8027E1F8: 80275A94 (draw__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter) // 8027E20C: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JPADrawInfo const* False // JPADrawInfo const False // JPADrawInfo False // u8 False asm void JPAEmitterManager::draw(JPADrawInfo const* param_0, u8 param_1) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/draw__17JPAEmitterManagerFPC11JPADrawInfoUc.s" } #pragma pop /* 8027E220-8027E278 0058+00 s=0 e=1 z=0 None .text forceDeleteAllEmitter__17JPAEmitterManagerFv */ // 8027E248: 8027E278 (forceDeleteGroupEmitter__17JPAEmitterManagerFUc) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm void JPAEmitterManager::forceDeleteAllEmitter() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/forceDeleteAllEmitter__17JPAEmitterManagerFv.s" } #pragma pop /* 8027E278-8027E2D8 0060+00 s=1 e=0 z=0 None .text forceDeleteGroupEmitter__17JPAEmitterManagerFUc */ // 8027E2A8: 8027E2D8 (forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // u8 False asm void JPAEmitterManager::forceDeleteGroupEmitter(u8 param_0) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/forceDeleteGroupEmitter__17JPAEmitterManagerFUc.s" } #pragma pop /* 8027E2D8-8027E344 006C+00 s=3 e=1 z=0 None .text forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter */ // 8027E2F8: 8027EC60 (deleteAllParticle__14JPABaseEmitterFv) // 8027E31C: 802DC15C (remove__10JSUPtrListFP10JSUPtrLink) // 8027E328: 802DBFF0 (prepend__10JSUPtrListFP10JSUPtrLink) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JPABaseEmitter* False // JPABaseEmitter False asm void JPAEmitterManager::forceDeleteEmitter(JPABaseEmitter* param_0) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter.s" } #pragma pop /* 8027E344-8027E354 0010+00 s=0 e=2 z=0 None .text entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JPAResourceManager* False // JPAResourceManager False // u8 False asm void JPAEmitterManager::entryResourceManager(JPAResourceManager* param_0, u8 param_1) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc.s" } #pragma pop /* 8027E354-8027E3F4 00A0+00 s=0 e=1 z=0 None .text clearResourceManager__17JPAEmitterManagerFUc */ // 8027E364: 803621D4 (_savegpr_27) // 8027E3A8: 8027E2D8 (forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter) // 8027E3E0: 80362220 (_restgpr_27) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u8 False asm void JPAEmitterManager::clearResourceManager(u8 param_0) { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/clearResourceManager__17JPAEmitterManagerFUc.s" } #pragma pop /* ############################################################################################## */ /* 80455358-8045535C 0004+00 s=1 e=0 z=0 None .sdata2 @2632 */ SECTION_SDATA2 static u8 lit_2632[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 8045535C-80455360 0004+00 s=1 e=0 z=0 None .sdata2 @2633 */ SECTION_SDATA2 static f32 lit_2633 = 32.0f; /* 80455360-80455364 0004+00 s=1 e=0 z=0 None .sdata2 @2634 */ SECTION_SDATA2 static f32 lit_2634 = 0.5f; /* 80455364-80455368 0004+00 s=1 e=0 z=0 None .sdata2 @2635 */ SECTION_SDATA2 static f32 lit_2635 = 3.0f; /* 80455368-80455370 0004+04 s=1 e=0 z=0 None .sdata2 @2636 */ SECTION_SDATA2 static f32 lit_2636[1 + 1 /* padding */] = { 1.0f, /* padding */ 0.0f, }; /* 8027E3F4-8027E51C 0128+00 s=1 e=0 z=0 None .text calcYBBCam__17JPAEmitterManagerFv */ // 8027E404: 80455358 (lit_2632) // 8027E424: 8045535C (lit_2633) // 8027E428: 80450AEC (__float_epsilon) // 8027E42C: 80450AEC (__float_epsilon) // 8027E45C: 80455360 (lit_2634) // 8027E464: 80455364 (lit_2635) // 8027E494: 80455368 (lit_2636) // 8027E4A0: 80455358 (lit_2632) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm void JPAEmitterManager::calcYBBCam() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/calcYBBCam__17JPAEmitterManagerFv.s" } #pragma pop /* 8027E51C-8027E54C 0030+00 s=1 e=0 z=0 None .text __ct__25JSUList<14JPABaseEmitter>Fv */ // 8027E530: 802DBF14 (initiate__10JSUPtrListFv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False True asm JSUList__template1::JSUList__template1() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/func_8027E51C.s" } #pragma pop /* 8027E54C-8027E588 003C+00 s=1 e=0 z=0 None .text __dt__26JPANode<15JPABaseParticle>Fv */ // 8027E56C: 802CED3C (__dl__FPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False True asm JPANode__template0::~JPANode__template0() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/func_8027E54C.s" } #pragma pop /* 8027E588-8027E598 0010+00 s=1 e=0 z=0 None .text __ct__26JPANode<15JPABaseParticle>Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False True asm JPANode__template0::JPANode__template0() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/func_8027E588.s" } #pragma pop /* 8027E598-8027E5EC 0054+00 s=1 e=0 z=0 None .text __dt__25JSUList<14JPABaseEmitter>Fv */ // 8027E5BC: 802DBEAC (__dt__10JSUPtrListFv) // 8027E5CC: 802CED3C (__dl__FPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False True asm JSUList__template1::~JSUList__template1() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/func_8027E598.s" } #pragma pop /* 8027E5EC-8027E64C 0060+00 s=1 e=0 z=0 None .text __dt__14JPABaseEmitterFv */ // 8027E61C: 802DBE14 (__dt__10JSUPtrLinkFv) // 8027E62C: 802CED3C (__dl__FPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm JPABaseEmitter::~JPABaseEmitter() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/__dt__14JPABaseEmitterFv.s" } #pragma pop /* 8027E64C-8027E6A4 0058+00 s=1 e=0 z=0 None .text __ct__14JPABaseEmitterFv */ // 8027E668: 802DBDFC (__ct__10JSUPtrLinkFPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm JPABaseEmitter::JPABaseEmitter() { nofralloc #include "asm/JSystem/JParticle/JPAEmitterManager/__ct__14JPABaseEmitterFv.s" } #pragma pop