summaryrefslogtreecommitdiff
path: root/include/JSystem/JParticle/JPAResource.h
blob: a041daf30235d951dda765b903db7319c92f6487 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef JPARESOURCE_H
#define JPARESOURCE_H

#include "dolphin/types.h"

class JKRHeap;
class JPAEmitterWorkData;
class JPABaseEmitter;
class JPABaseParticle;

class JPABaseShape;
class JPAExtraShape;
class JPAChildShape;
class JPAExTexShape;
class JPADynamicsBlock;
class JPAFieldBlock;
class JPAKeyBlock;

/**
 * @ingroup jsystem-jparticle
 * 
 */
class JPAResource {
public:
    /* 80274010 */ JPAResource();
    /* 80274080 */ void init(JKRHeap*);
    /* 802755E8 */ bool calc(JPAEmitterWorkData*, JPABaseEmitter*);
    /* 80275A94 */ void draw(JPAEmitterWorkData*, JPABaseEmitter*);
    /* 80275B74 */ void drawP(JPAEmitterWorkData*);
    /* 80275EB0 */ void drawC(JPAEmitterWorkData*);
    /* 802761A8 */ void setPTev();
    /* 8027642C */ void setCTev(JPAEmitterWorkData*);
    /* 8027658C */ void calc_p(JPAEmitterWorkData*, JPABaseParticle*);
    /* 80276608 */ void calc_c(JPAEmitterWorkData*, JPABaseParticle*);
    /* 80276684 */ void calcField(JPAEmitterWorkData*, JPABaseParticle*);
    /* 80276700 */ void calcKey(JPAEmitterWorkData*);
    /* 80276840 */ void calcWorkData_c(JPAEmitterWorkData*);
    /* 80276A0C */ void calcWorkData_d(JPAEmitterWorkData*);

    JPABaseShape* getBsp() const { return mpBaseShape; }
    JPAExtraShape* getEsp() const { return mpExtraShape; }
    JPAChildShape* getCsp() const { return mpChildShape; }
    JPAExTexShape* getEts() const { return mpExTexShape; }
    JPADynamicsBlock* getDyn() const { return mpDynamicsBlock; }

    u32 getTexIdx(u32 idx) const { return mpTDB1[idx]; }
    u16 getUsrIdx() const { return mUsrIdx; }

public:
    /* 0x00 */ void** mpCalcEmitterFuncList;
    /* 0x04 */ void** mpDrawEmitterFuncList;
    /* 0x08 */ void** mpDrawEmitterChildFuncList;
    /* 0x0C */ void** mpCalcParticleFuncList;
    /* 0x10 */ void** mpDrawParticleFuncList;
    /* 0x14 */ void** mpCalcParticleChildFuncList;
    /* 0x18 */ void** mpDrawParticleChildFuncList;

    /* 0x1C */ JPABaseShape* mpBaseShape;
    /* 0x20 */ JPAExtraShape* mpExtraShape;
    /* 0x24 */ JPAChildShape* mpChildShape;
    /* 0x28 */ JPAExTexShape* mpExTexShape;
    /* 0x2C */ JPADynamicsBlock* mpDynamicsBlock;
    /* 0x30 */ JPAFieldBlock** mpFieldBlocks;
    /* 0x34 */ JPAKeyBlock** mpKeyBlocks;
    /* 0x38 */ u16 const* mpTDB1;
    /* 0x3C */ u16 mUsrIdx;
    /* 0x3E */ u8 mFieldBlockNum;
    /* 0x3F */ u8 mKeyBlockNum;
    /* 0x40 */ u8 mTDB1Num;
    /* 0x41 */ u8 mpCalcEmitterFuncListNum;
    /* 0x42 */ u8 mpDrawEmitterFuncListNum;
    /* 0x43 */ u8 mpDrawEmitterChildFuncListNum;
    /* 0x44 */ u8 mpCalcParticleFuncListNum;
    /* 0x45 */ u8 mpDrawParticleFuncListNum;
    /* 0x46 */ u8 mpCalcParticleChildFuncListNum;
    /* 0x47 */ u8 mpDrawParticleChildFuncListNum;
};

#endif /* JPARESOURCE_H */