summaryrefslogtreecommitdiff
path: root/include/JSystem
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-05-23 03:09:59 -0700
committerGitHub <noreply@github.com>2021-05-23 12:09:59 +0200
commite915df66c806bdff65aa243649f7abfe6cc19227 (patch)
tree226e708c0546c45f65420446382ba597ad773651 /include/JSystem
parent462d71cbef02ef119fc2aa480b98cfeedde46441 (diff)
move d_a_alink and some related stuff (#130)
* clean up d_a_player * move some of daalink * more daalink / daplayer * setup some daalink members * rest of daalink members setup * remove comment * few more matches * remove asm * more matches * more matches + move e_wb_class * fix some d_save classes Co-authored-by: lepelog <lepelog@users.noreply.github.com>
Diffstat (limited to 'include/JSystem')
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h4
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModel.h87
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModelData.h12
-rw-r--r--include/JSystem/J3DGraphBase/J3DMatBlock.h8
-rw-r--r--include/JSystem/J3DGraphBase/J3DPacket.h8
-rw-r--r--include/JSystem/JAudio2/JAISound.h164
-rw-r--r--include/JSystem/JGeometry.h25
-rw-r--r--include/JSystem/JParticle/JPAParticle.h19
-rw-r--r--include/JSystem/JUtility/JUTTexture.h27
9 files changed, 348 insertions, 6 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index 184cd1a2d7..183b45b14a 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -7,11 +7,11 @@
class J3DFrameCtrl {
public:
void init(s16);
- void checkPass(f32);
+ BOOL checkPass(f32);
void update();
~J3DFrameCtrl();
- float getRate() { return mRate; }
+ float getRate() const { return mRate; }
void setAttribute(u8 pAttr) { mAttribute = pAttr; }
void setEnd(s16 pEnd) { mEnd = pEnd; }
void setRate(float pRate) { mRate = pRate; }
diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h
index d4828ac555..af644741c0 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModel.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModel.h
@@ -1,6 +1,93 @@
#ifndef J3DMODEL_H
#define J3DMODEL_H
+#include "JSystem/J3DGraphAnimator/J3DModelData.h"
+#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
+class J3DModel;
+struct J3DSkinDeform {
+ /* 8032C9B0 */ void initSkinInfo(J3DModelData*);
+ /* 8032CF44 */ void initMtxIndexArray(J3DModelData*);
+ /* 8032D378 */ void changeFastSkinDL(J3DModelData*);
+ /* 8032D738 */ void transformVtxPosNrm(J3DModelData*);
+ /* 8032DFDC */ void deform(J3DModel*);
+};
+
+struct J3DDeformData {
+ /* 8032E230 */ void offAllFlag(u32);
+ /* 8032E274 */ void deform(J3DModel*);
+};
+
+class J3DMtxBuffer {
+public:
+ /* 80326214 */ void initialize();
+ /* 80326258 */ void create(J3DModelData*, u32);
+ /* 803268D4 */ void calcWeightEnvelopeMtx();
+ /* 80326ACC */ void calcDrawMtx(u32, Vec const&, f32 const (&)[3][4]);
+ /* 80326D3C */ void calcNrmMtx();
+ /* 80326EF0 */ void calcBBoardMtx();
+ /* 803283B4 */ ~J3DMtxBuffer();
+
+ Mtx* getAnmMtx(int p1) {
+ Mtx* tmp = mMatrices[0];
+ return tmp + (p1);
+ }
+
+ /* 0x00 */ void* mJointTree;
+ /* 0x04 */ u32 field_0x4;
+ /* 0x08 */ u32 field_0x8;
+ /* 0x0C */ Mtx* mMatrices[5];
+};
+
+class J3DModel {
+public:
+ /* 800CFFF4 */ void setBaseTRMtx(f32 (*)[4]);
+ /* 80327100 */ void initialize();
+ /* 80327184 */ void entryModelData(J3DModelData*, u32, u32);
+ /* 80327300 */ void createShapePacket(J3DModelData*);
+ /* 803273CC */ void createMatPacket(J3DModelData*, u32);
+ /* 803275FC */ void newDifferedDisplayList(u32);
+ /* 8032767C */ void lock();
+ /* 803276B4 */ void unlock();
+ /* 803276EC */ void calcMaterial();
+ /* 80327858 */ void calcDiffTexMtx();
+ /* 803279A0 */ void diff();
+ /* 80327A2C */ void setDeformData(J3DDeformData*, u32);
+ /* 80327AA0 */ void setSkinDeform(J3DSkinDeform*, u32);
+ /* 80327BD4 */ void calcAnmMtx();
+ /* 80327C58 */ void calcWeightEnvelopeMtx();
+ /* 80327CA4 */ void update();
+ /* 80327CF0 */ void calc();
+ /* 80327E4C */ void entry();
+ /* 80327F40 */ void viewCalc();
+ /* 80328190 */ void calcNrmMtx();
+ /* 803281B4 */ void calcBumpMtx();
+ /* 803282B8 */ void calcBBoardMtx();
+ /* 803282EC */ void prepareShapePackets();
+ /* 80328350 */ ~J3DModel();
+ Mtx* getAnmMtx(int p1);
+
+ // better way to handle inlines with same name as non-inlines?
+ Mtx* i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); }
+
+ /* 0x00 */ void* vtable;
+ /* 0x04 */ J3DModelData* mModelData;
+ /* 0x08 */ u32 mFlags;
+ /* 0x0C */ u32 field_0x0c;
+ /* 0x10 */ int field_0x10;
+ /* 0x14 */ int mUserData;
+ /* 0x18 */ Vec mPosition;
+ /* 0x24 */ Mtx mBaseTransformMtx;
+ /* 0x54 */ Mtx mInternalView;
+ /* 0x84 */ J3DMtxBuffer* mMtxBuffer;
+ /* 0x88 */ void* mVertexBuffer;
+ /* 0xC0 */ void* mMaterialPacket;
+ /* 0xC4 */ void* mShapePacket;
+ /* 0xC8 */ void* mDeformData;
+ /* 0xCC */ void* mSkinDeform;
+ /* 0xD0 */ void* mVtxColorCalc;
+ /* 0xD4 */ u8 field_0xd4[8];
+};
+
#endif /* J3DMODEL_H */
diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h
index 84e10af0fb..76d4b40ab7 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModelData.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h
@@ -3,4 +3,16 @@
#include "dolphin/types.h"
+class J3DModelData {
+ /* 80325D88 */ void clear();
+ /* 80325DA0 */ J3DModelData();
+ /* 80325E14 */ void newSharedDisplayList(u32);
+ /* 80325EC8 */ void indexToPtr();
+ /* 80325F94 */ void makeSharedDL();
+ /* 8032600C */ void simpleCalcMaterial(u16, f32 (*)[4]);
+ /* 803260CC */ void syncJ3DSysPointers() const;
+ /* 803260F8 */ void syncJ3DSysFlags() const;
+ /* 8032617C */ ~J3DModelData();
+};
+
#endif /* J3DMODELDATA_H */
diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h
index 65b37695a1..ff5235ef2d 100644
--- a/include/JSystem/J3DGraphBase/J3DMatBlock.h
+++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h
@@ -1,6 +1,14 @@
#ifndef J3DMATBLOCK_H
#define J3DMATBLOCK_H
+#include "dolphin/gx/GXTexture.h"
#include "dolphin/types.h"
+class J3DGXColorS10 {
+public:
+ /* 8000E460 */ J3DGXColorS10();
+
+ _GXColorS10 mColor;
+};
+
#endif /* J3DMATBLOCK_H */
diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h
index 09e3a7c739..1b2cee8aa5 100644
--- a/include/JSystem/J3DGraphBase/J3DPacket.h
+++ b/include/JSystem/J3DGraphBase/J3DPacket.h
@@ -51,9 +51,10 @@ public:
virtual ~J3DPacket();
public:
- J3DPacket* mpNextSibling;
- J3DPacket* mpFirstChild;
-};
+ /* 0x04 */ J3DPacket* mpNextSibling;
+ /* 0x08 */ J3DPacket* mpFirstChild;
+ /* 0x0C */ void* mpUserData;
+}; // Size = 0x10
class J3DDrawPacket : public J3DPacket {
public:
@@ -64,7 +65,6 @@ public:
virtual void draw();
public:
- void* mpUserData;
int mFlags;
char mPad0[0x0C]; // unk
J3DDisplayListObj* mpDisplayListObj;
diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h
index a8cec58208..265bd2dfc8 100644
--- a/include/JSystem/JAudio2/JAISound.h
+++ b/include/JSystem/JAudio2/JAISound.h
@@ -1,6 +1,170 @@
#ifndef JAISOUND_H
#define JAISOUND_H
+#include "JSystem/JGeometry.h"
#include "dolphin/types.h"
+#include "global.h"
+
+class JAISoundID {
+public:
+ operator u32() const { return this->mId; }
+
+ JAISoundID(u32 pId) : mId(pId) {}
+
+ JAISoundID(JAISoundID const& other);
+
+private:
+ u32 mId;
+};
+
+struct JASSoundParams {};
+
+struct JAISoundParams {
+ /* 802A2280 */ void mixOutAll(JASSoundParams const&, JASSoundParams*, f32);
+
+ float field_0x0;
+ float field_0x4;
+ float field_0x8;
+ float field_0xc;
+ float field_0x10;
+ float field_0x14;
+ float field_0x18;
+ float field_0x1c;
+};
+
+struct JASTrack {
+ /* 80291444 */ void setChannelMgrCount(u32);
+ /* 802919F4 */ void assignExtBuffer(u32, JASSoundParams*);
+ /* 80291C30 */ void openChild(u32);
+ /* 80292918 */ void writePort(u32, u16);
+ /* 8029297C */ void readPort(u32);
+};
+
+class JAISoundHandle;
+class JAIAudible;
+class JAIAudience;
+class JAISound {
+public:
+ /* 802A21A0 */ void releaseHandle();
+ /* 802A21BC */ void attachHandle(JAISoundHandle*);
+ /* 802A22F8 */ JAISound();
+ /* 802A2328 */ void start_JAISound_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
+ /* 802A244C */ void acceptsNewAudible() const;
+ /* 802A2474 */ void newAudible(JGeometry::TVec3<f32> const&, JGeometry::TVec3<f32> const*, u32,
+ JAIAudience*);
+ /* 802A2598 */ void stop();
+ /* 802A24DC */ void stop(u32 fadeout);
+ /* 802A25D8 */ bool asSe();
+ /* 802A25E0 */ bool asSeq();
+ /* 802A25E8 */ bool asStream();
+ /* 802A25F0 */ void die_JAISound_();
+ /* 802A266C */ void increasePrepareCount_JAISound_();
+ /* 802A26B8 */ void calc_JAISound_();
+ /* 802A29DC */ void initTrack_JAISound_(JASTrack*);
+
+ JAISoundID getID() const { return JAISoundID((u32)this->sound_id); }
+ u32 getUserData() const { return user_data; }
+
+ // TODO: do proper struct later
+ void* __vt;
+ struct JAISoundHandle* handle;
+ struct JAIAudible* audible;
+ struct JAIAudience* audience;
+ s32 field_0xc;
+ s32 num_prepare_steps;
+ struct JAISoundID sound_id;
+ u8 field_0x18;
+ u8 field_0x19;
+ u8 field_0x1a;
+ u8 field_0x1b;
+ u32 user_data;
+ float field_0x20;
+ float field_0x24;
+ float field_0x28;
+ s32 field_0x2c;
+ s32 audience_priority;
+ s32 field_0x34;
+ struct JAISoundParams params;
+ u8 field_0x58;
+ u8 field_0x59;
+ u8 field_0x5a;
+ u8 field_0x5b;
+ u8 field_0x5c;
+ u8 field_0x5d;
+ u8 field_0x5e;
+ u8 field_0x5f;
+ u8 field_0x60;
+ u8 field_0x61;
+ u8 field_0x62;
+ u8 field_0x63;
+ u8 field_0x64;
+ u8 field_0x65;
+ u8 field_0x66;
+ u8 field_0x67;
+ u8 field_0x68;
+ u8 field_0x69;
+ u8 field_0x6a;
+ u8 field_0x6b;
+ u8 field_0x6c;
+ u8 field_0x6d;
+ u8 field_0x6e;
+ u8 field_0x6f;
+ u8 field_0x70;
+ u8 field_0x71;
+ u8 field_0x72;
+ u8 field_0x73;
+ u8 field_0x74;
+ u8 field_0x75;
+ u8 field_0x76;
+ u8 field_0x77;
+ u8 field_0x78;
+ u8 field_0x79;
+ u8 field_0x7a;
+ u8 field_0x7b;
+ u8 field_0x7c;
+ u8 field_0x7d;
+ u8 field_0x7e;
+ u8 field_0x7f;
+ u8 field_0x80;
+ u8 field_0x81;
+ u8 field_0x82;
+ u8 field_0x83;
+ u8 field_0x84;
+ u8 field_0x85;
+ u8 field_0x86;
+ u8 field_0x87;
+ u8 field_0x88;
+ u8 field_0x89;
+ u8 field_0x8a;
+ u8 field_0x8b;
+ u8 field_0x8c;
+ u8 field_0x8d;
+ u8 field_0x8e;
+ u8 field_0x8f;
+ u8 field_0x90;
+ u8 field_0x91;
+ u8 field_0x92;
+ u8 field_0x93;
+};
+
+class JAISoundHandle {
+public:
+ JAISoundHandle(); // noninline in JAUClusterSound.cpp
+ ~JAISoundHandle();
+
+ bool isSoundAttached() const { return mSound != NULL; }
+
+ JAISound* operator->() const {
+ JUT_ASSERT(mSound != NULL);
+ return mSound;
+ }
+
+ operator bool() const { return isSoundAttached(); }
+
+ void releaseSound();
+
+private:
+ JAISound* mSound;
+};
#endif /* JAISOUND_H */
diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h
new file mode 100644
index 0000000000..e4848569cb
--- /dev/null
+++ b/include/JSystem/JGeometry.h
@@ -0,0 +1,25 @@
+#ifndef JGEOMETRY_H
+#define JGEOMETRY_H
+
+#include "dolphin/types.h"
+
+namespace JGeometry {
+
+template <typename T>
+struct TVec3 {
+ T x;
+ T y;
+ T z;
+};
+/*
+template <>
+struct TVec3<f32> {
+ TVec3(Vec& v) {
+
+ }
+};
+ */
+
+} // namespace JGeometry
+
+#endif \ No newline at end of file
diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h
index 0255cb0d41..01887531c1 100644
--- a/include/JSystem/JParticle/JPAParticle.h
+++ b/include/JSystem/JParticle/JPAParticle.h
@@ -3,4 +3,23 @@
#include "dolphin/types.h"
+class JPABaseParticle;
+struct _GXTexMapID {};
+
+struct JPABaseEmitter {
+ /* 8027EB60 */ void createChild(JPABaseParticle*);
+ /* 8027EA40 */ void createParticle();
+ /* 8027EF30 */ void getCurrentCreateNumber() const;
+ /* 8027EF40 */ void getDrawCount() const;
+ /* 8027EF50 */ void loadTexture(u8, _GXTexMapID);
+};
+
+class JPAParticleCallBack {
+public:
+ virtual void temp(); // temp to build OK, remove later
+ ~JPAParticleCallBack();
+ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
+ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
+};
+
#endif /* JPAPARTICLE_H */
diff --git a/include/JSystem/JUtility/JUTTexture.h b/include/JSystem/JUtility/JUTTexture.h
index 16ce279d94..ad657caffb 100644
--- a/include/JSystem/JUtility/JUTTexture.h
+++ b/include/JSystem/JUtility/JUTTexture.h
@@ -3,4 +3,31 @@
#include "dolphin/types.h"
+struct ResTIMG { /* Acts as the header to image data. Usually texture data immediately follows it,
+ so any pointer arithmetic to go past the end of this structure is so that a
+ variable sized allocated buffer can be accessed. */
+ u8 texture_format;
+ bool is_alpha_enabled;
+ u16 texture_width;
+ u16 texture_height;
+ u8 wrap_s;
+ u8 wrap_t;
+ bool is_palettes_enabled;
+ u8 palette_format;
+ u16 palette_count;
+ u32 palette_offset;
+ bool is_mip_map_enabled;
+ bool do_edge_lod;
+ bool bias_clamp;
+ u8 max_anisotropy;
+ u8 min_filter;
+ u8 mag_filter;
+ u8 min_lod;
+ u8 max_lod;
+ u8 num_mipmaps;
+ u8 unknown;
+ u16 lod_bias;
+ u32 texture_data_offset;
+};
+
#endif /* JUTTEXTURE_H */