summaryrefslogtreecommitdiff
path: root/include/JSystem/J3DGraphBase
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2023-08-02 18:46:40 +0300
committerGitHub <noreply@github.com>2023-08-02 18:46:40 +0300
commitf3f944c7975ce6750db8a2c8121d0a0c0cdf4def (patch)
tree2f9a149ac17d9b87eb6c7e45fd4977b04e926f0c /include/JSystem/J3DGraphBase
parent24161e34d27f70ab54d584769b1d9f71262d02e9 (diff)
parent392f6101ca8d9187768d9764b14f8dce6bb7be59 (diff)
Merge pull request #396 from TakaRikka/swprop
d_a_obj_swpropeller OK, work on d_kankyo / kytag08
Diffstat (limited to 'include/JSystem/J3DGraphBase')
-rw-r--r--include/JSystem/J3DGraphBase/J3DMatBlock.h35
-rw-r--r--include/JSystem/J3DGraphBase/J3DStruct.h2
2 files changed, 28 insertions, 9 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h
index 377746bb9d..d86ade35cc 100644
--- a/include/JSystem/J3DGraphBase/J3DMatBlock.h
+++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h
@@ -9,14 +9,12 @@
#include "dolphin/types.h"
#include "m_Do/m_Do_lib.h"
-struct J3DGXColorS10 {
- /* 8000E460 */ J3DGXColorS10();
-
- _GXColorS10 mColor;
+struct J3DGXColorS10 : public GXColorS10 {
+ /* 8000E460 */ J3DGXColorS10() {}
};
-struct J3DGXColor : public _GXColor {
- /* 8000E538 */ J3DGXColor();
+struct J3DGXColor : public GXColor {
+ /* 8000E538 */ J3DGXColor() {}
};
struct J3DNBTScaleInfo {
@@ -542,10 +540,25 @@ private:
extern const u16 j3dDefaultZModeID;
+inline u16 calcZModeID(u8 param_0, u8 param_1, u8 param_2) {
+ return ((param_1 * 2) & 0x1FE) + (param_0 * 0x10) + param_2;
+}
+
+struct J3DZModeInfo {
+ /* 0x0 */ u8 field_0x0;
+ /* 0x1 */ u8 field_0x1;
+ /* 0x2 */ u8 field_0x2;
+};
+
struct J3DZMode {
J3DZMode() {
mZModeID = j3dDefaultZModeID;
}
+
+ void setZModeInfo(const J3DZModeInfo& info) {
+ mZModeID = calcZModeID(info.field_0x0, info.field_0x1, info.field_0x2);
+ }
+
/* 0x0 */ u16 mZModeID;
};
@@ -618,6 +631,10 @@ struct J3DAlphaComp {
mRef1 = param_1.field_0x4;
u32 p1_mref1 = param_1.mRef1;
field_0x0 = calcAlphaCmpID(param_1.field_0x0, param_1.mRef0, p1_mref1);
+
+ // this matches for `dKy_bg_MAxx_proc` but causes `addWarpMaterial` to fail,
+ // while the above matches for `addWarpMaterial` but causes `dKy_bg_MAxx_proc` to fail?
+ // field_0x0 = calcAlphaCmpID(param_1.field_0x0, param_1.mRef0, param_1.mRef1);
}
/* 0x00 */ u16 field_0x0;
@@ -646,7 +663,7 @@ public:
/* 8000DF4C */ virtual bool getBlend();
/* 80317374 */ virtual void setZMode(J3DZMode const*);
/* 8000E014 */ virtual void setZMode(J3DZMode);
- /* 8000DF44 */ virtual bool getZMode();
+ /* 8000DF44 */ virtual J3DZMode* getZMode();
/* 80317378 */ virtual void setZCompLoc(u8 const*);
/* 8000E010 */ virtual void setZCompLoc(u8);
/* 8000DF3C */ virtual bool getZCompLoc() const;
@@ -708,7 +725,7 @@ public:
/* 80321A00 */ virtual bool getBlend();
/* 80321A14 */ virtual void setZMode(J3DZMode const*);
/* 80321A08 */ virtual void setZMode(J3DZMode);
- /* 80321A20 */ virtual bool getZMode();
+ /* 80321A20 */ virtual J3DZMode* getZMode();
/* 80321A30 */ virtual void setZCompLoc(u8 const*);
/* 80321A28 */ virtual void setZCompLoc(u8);
/* 80321A3C */ virtual bool getZCompLoc() const;
@@ -750,7 +767,7 @@ public:
/* 80321B64 */ virtual bool getBlend();
/* 80321B78 */ virtual void setZMode(J3DZMode const*);
/* 80321B6C */ virtual void setZMode(J3DZMode);
- /* 80321B84 */ virtual bool getZMode();
+ /* 80321B84 */ virtual J3DZMode* getZMode();
/* 80321B94 */ virtual void setZCompLoc(u8 const*);
/* 80321B8C */ virtual void setZCompLoc(u8);
/* 80321BA0 */ virtual bool getZCompLoc() const;
diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h
index cb98164d03..5fa9a87af1 100644
--- a/include/JSystem/J3DGraphBase/J3DStruct.h
+++ b/include/JSystem/J3DGraphBase/J3DStruct.h
@@ -23,6 +23,8 @@ class J3DLightObj {
public:
/* 80018C0C */ J3DLightObj() : mInfo(j3dDefaultLightInfo) {}
+ J3DLightInfo& getLightInfo() { return mInfo; }
+
/* 0x00 */ J3DLightInfo mInfo;
/* 0x34 */ u8 field_0x34[64];
}; // Size = 0x74