MCPcopy Create free account
hub / github.com/doldecomp/mkdd / createSimpleEmitterID

Method createSimpleEmitterID

libs/JSystem/JParticle/JPAEmitterManager.cpp:43–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43JPABaseEmitter *JPAEmitterManager::createSimpleEmitterID(const JGeometry::TVec3f &pos, u16 resID, u8 group_id, u8 res_mgr_id,
44 JPAEmitterCallBack *ecback, JPAParticleCallBack *pcback) {
45#line 88
46 JUT_ASSERT(group_id < gidMax);
47 JUT_ASSERT(res_mgr_id < ridMax);
48 JUT_ASSERT(pResMgrAry[res_mgr_id] != 0);
49 JPAResource *res = pResMgrAry[res_mgr_id]->getResource(resID);
50
51 if (res == nullptr) {
52 JUT_WARNING_F3("JPA : User Index %d is NOT exist\n", resID);
53 }
54 else if (mFreeEmtrList.getNumLinks() == 0) {
55 JUT_WARNING_F3("JPA : Can NOT create emitter more\n");
56 }
57 else {
58 JSULink<JPABaseEmitter> *link = mFreeEmtrList.getFirst();
59 mFreeEmtrList.remove(link);
60 pEmtrUseList[group_id].append(link);
61
62 JPABaseEmitter *emit = link->getObject();
63 emit->init(this, res);
64 emit->mPtclPool = &mPtclPool;
65 emit->mEmitterCallback = ecback;
66 emit->mParticleCallback = pcback;
67 emit->mGroupID = group_id;
68 emit->mResMgrID = res_mgr_id;
69 emit->mGlobalTrs.set(pos);
70 return emit;
71 }
72
73 return nullptr;
74}
75
76JPABaseEmitter *JPAEmitterManager::createSimpleEmitter(const JGeometry::TVec3f &pos, u16 resID, JPAEmitterCallBack *ecback, JPAParticleCallBack *pcback) {
77 return createSimpleEmitterID(pos, resID, 0, 0, ecback, pcback);

Callers

nothing calls this directly

Calls 8

getResourceMethod · 0.45
getNumLinksMethod · 0.45
getFirstMethod · 0.45
removeMethod · 0.45
appendMethod · 0.45
getObjectMethod · 0.45
initMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected