Merge remote-tracking branch 'origin/main' into 26-02-27-pjb-dev-2

This commit is contained in:
PJB3005
2026-03-01 15:08:52 +01:00
3940 changed files with 243894 additions and 20306 deletions
+2 -2
View File
@@ -3,11 +3,11 @@
#include "JSystem/JMath/JMath.h"
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/JUtility/JUTPalette.h"
typedef struct _GXColor GXColor;
typedef struct _GXColorS10 GXColorS10;
class J2DScreen;
class JUTPalette;
struct ResTIMG;
enum J2DAnmKind {
@@ -59,7 +59,7 @@ public:
J2DAnmVtxColor() {
mKind = KIND_VTX_COLOR;
for (int i = 0; i < ARRAY_SIZE(mAnmTableNum); i++) {
mAnmTableNum[i] = NULL;
mAnmTableNum[i] = 0;
}
for (int i = 0; i < ARRAY_SIZE(mVtxColorIndexData); i++) {
mVtxColorIndexData[i] = NULL;
@@ -1,9 +1,9 @@
#ifndef J3DANIMATION_H
#define J3DANIMATION_H
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "JSystem/J3DAssert.h"
#include "JSystem/JUtility/JUTNameTab.h"
#include <dolphin/mtx.h>
#include "global.h"
#include "dusk/endian.h"
@@ -14,6 +14,8 @@
#define OFFSET_PTR void*
#endif
struct J3DTransformInfo;
struct JUTDataBlockHeader {
/* 0x0 */ BE(u32) mType;
/* 0x4 */ BE(u32) mSize;
@@ -542,7 +544,7 @@ public:
virtual ~J3DAnmTransformKey() {}
virtual s32 getKind() const { return 8; }
virtual void getTransform(u16 jointNo, J3DTransformInfo* pTransform) const {
calcTransform(mFrame, jointNo, pTransform);
calcTransform(getFrame(), jointNo, pTransform);
}
/* 0x20 */ int mDecShift;
+12 -1
View File
@@ -43,7 +43,10 @@ public:
virtual void init(const Vec& param_0, const Mtx&) = 0;
virtual void calc() = 0;
static J3DMtxBuffer* getMtxBuffer() { return mMtxBuffer; }
static J3DMtxBuffer* getMtxBuffer() {
J3D_ASSERT_NULLPTR(174, mMtxBuffer != NULL)
return mMtxBuffer;
}
static J3DJoint* getJoint() {
J3D_ASSERT_NULLPTR(185, mJoint != NULL)
return mJoint;
@@ -234,4 +237,12 @@ struct J3DMtxCalcCalcTransformBasic {
static void calcTransform(J3DTransformInfo const&);
};
inline s32 checkScaleOne(const Vec& param_0) {
if (param_0.x == 1.0f && param_0.y == 1.0f && param_0.z == 1.0f) {
return true;
} else {
return false;
}
}
#endif /* J3DJOINT_H */
@@ -93,7 +93,10 @@ public:
J3D_ASSERT_NULLPTR(214, pAnmTexPattern != NULL);
}
virtual void calc(u16* param_0) const { mAnmTexPattern->getTexNo(field_0x4, param_0); }
virtual void calc(u16* param_0) const {
J3D_ASSERT_NULLPTR(532, param_0);
mAnmTexPattern->getTexNo(field_0x4, param_0);
}
void operator=(J3DTexNoAnm const& other) {
mAnmTexPattern = other.mAnmTexPattern;
@@ -4,6 +4,7 @@
#include "JSystem/J3DGraphAnimator/J3DCluster.h"
#include "JSystem/J3DGraphAnimator/J3DMtxBuffer.h"
#include <dolphin/types.h>
#include <cstring>
class J3DModel;
class J3DAnmCluster;
@@ -115,6 +116,8 @@ inline void J3DFillZero32B(__REGISTER void* param_0, __REGISTER u32 param_1) {
addi param_0, param_0, 0x20
bdnz lbl_8032D948
}
#else
memset(param_0, 0, param_1);
#endif
}
+1 -1
View File
@@ -75,7 +75,7 @@ public:
J3DTexCoord* getTexCoord(u32 idx) { return mTexGenBlock->getTexCoord(idx); }
J3DZMode* getZMode() { return mPEBlock->getZMode(); }
J3DBlend* getBlend() { return mPEBlock->getBlend(); }
J3DColorChan* getColorChan(u32 idx) { return getColorBlock()->getColorChan(idx); }
J3DColorChan* getColorChan(u32 idx) { return mColorBlock->getColorChan(idx); }
J3DGXColor* getMatColor(u32 i) { return mColorBlock->getMatColor(i); }
void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
+1 -1
View File
@@ -181,7 +181,7 @@ public:
void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; }
void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; }
void setTexMtxLoadType(u32 type) { mFlags = (mFlags & 0xFFFF0FFF) | type; }
void setTexMtxLoadType(u32 type) { mFlags = type | (mFlags & ~0xF000); }
bool getNBTFlag() const { return mHasNBT; }
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
void setBumpMtxOffset(u32 offset) { mBumpMtxOffset = offset; }
+2 -2
View File
@@ -39,8 +39,8 @@ struct J3DTextureSRTInfo {
/* 0x10 */ f32 mTranslationY;
bool operator==(J3DTextureSRTInfo&) const;
inline void operator=(J3DTextureSRTInfo const& other) {
#ifdef __MWERKS__
inline void operator=(J3DTextureSRTInfo const& other) {
__REGISTER const f32* src = &other.mScaleX;
__REGISTER f32* dst = &mScaleX;
__REGISTER f32 xy;
@@ -58,8 +58,8 @@ struct J3DTextureSRTInfo {
psq_l xy, 0(src), 0, 0
psq_st xy, 0(dst), 0, 0
};
#endif
}
#endif
}; // Size: 0x14
enum J3DTexMtxMode {
+4 -2
View File
@@ -201,10 +201,12 @@ struct J3DTevOrder : public J3DTevOrderInfo {
J3DTevOrder() {
J3DTevOrderInfo::operator=(j3dDefaultTevOrderInfoNull);
}
J3DTevOrder(const J3DTevOrderInfo& info) : J3DTevOrderInfo(info) {}
J3DTevOrder(const J3DTevOrderInfo& info) {
J3DTevOrderInfo::operator=(info);
}
J3DTevOrderInfo& getTevOrderInfo() { return *this; }
u8 getTexMap() { return mTexMap; }
u8 getTexMap() const { return mTexMap; }
};
extern u8 j3dTevSwapTableTable[1024];
+1 -1
View File
@@ -90,7 +90,7 @@ struct J3DTexCoord : public J3DTexCoordInfo {
mTexMtxReg = mTexGenMtx;
}
void setTexCoordInfo(const J3DTexCoordInfo& info) {
__memcpy(this, &info, sizeof(J3DTexCoordInfo));
J3DTexCoordInfo::operator=(info);
}
u8 getTexGenType() const { return mTexGenType; }
@@ -85,6 +85,12 @@ inline void J3DPSMtx33Copy(__REGISTER Mtx3P src, __REGISTER Mtx3P dst) {
psq_st fr1, 0x18(dst), 0, 0
stfs fr0, 0x20(dst)
}
#else
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
dst[i][j] = src[i][j];
}
}
#endif
}
@@ -110,6 +116,12 @@ inline void J3DPSMtx33CopyFrom34(__REGISTER MtxP src, __REGISTER Mtx3P dst) {
psq_st x_y3, 24(dst), 0, 0
stfs z3, 0x20(dst)
}
#else
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
dst[i][j] = src[i][j];
}
}
#endif
}
@@ -137,6 +149,12 @@ inline void J3DPSMulMtxVec(__REGISTER MtxP mtx, __REGISTER Vec* vec, __REGISTER
ps_sum0 f6, f5, f6, f5
psq_st f6, 8(dst), 1, 0
}
#else
Vec tmp;
tmp.x = mtx[0][0] * vec->x + mtx[0][1] * vec->y + mtx[0][2] * vec->z + mtx[0][3];
tmp.y = mtx[1][0] * vec->x + mtx[1][1] * vec->y + mtx[1][2] * vec->z + mtx[1][3];
tmp.z = mtx[2][0] * vec->x + mtx[2][1] * vec->y + mtx[2][2] * vec->z + mtx[2][3];
*dst = tmp;
#endif
}
@@ -164,6 +182,12 @@ inline void J3DPSMulMtxVec(__REGISTER MtxP mtx, __REGISTER S16Vec* vec, __REGIST
ps_sum0 f6, f5, f6, f5
psq_st f6, 4(dst), 1, 7
}
#else
S16Vec tmp;
tmp.x = (s16)(mtx[0][0] * vec->x + mtx[0][1] * vec->y + mtx[0][2] * vec->z + mtx[0][3]);
tmp.y = (s16)(mtx[1][0] * vec->x + mtx[1][1] * vec->y + mtx[1][2] * vec->z + mtx[1][3]);
tmp.z = (s16)(mtx[2][0] * vec->x + mtx[2][1] * vec->y + mtx[2][2] * vec->z + mtx[2][3]);
*dst = tmp;
#endif
}
@@ -195,6 +219,12 @@ inline void J3DPSMulMtxVec(__REGISTER Mtx3P mtx, __REGISTER Vec* vec, __REGISTER
ps_sum0 f6, f5, f6, f5
psq_st f6, 8(dst), 1, 0
}
#else
Vec tmp;
tmp.x = mtx[0][0] * vec->x + mtx[0][1] * vec->y + mtx[0][2] * vec->z;
tmp.y = mtx[1][0] * vec->x + mtx[1][1] * vec->y + mtx[1][2] * vec->z;
tmp.z = mtx[2][0] * vec->x + mtx[2][1] * vec->y + mtx[2][2] * vec->z;
*dst = tmp;
#endif
}
@@ -226,6 +256,12 @@ inline void J3DPSMulMtxVec(__REGISTER Mtx3P mtx, __REGISTER S16Vec* vec, __REGIS
ps_sum0 f6, f5, f6, f5
psq_st f6, 4(dst), 1, 7
}
#else
S16Vec tmp;
tmp.x = (s16)(mtx[0][0] * vec->x + mtx[0][1] * vec->y + mtx[0][2] * vec->z);
tmp.y = (s16)(mtx[1][0] * vec->x + mtx[1][1] * vec->y + mtx[1][2] * vec->z);
tmp.z = (s16)(mtx[2][0] * vec->x + mtx[2][1] * vec->y + mtx[2][2] * vec->z);
*dst = tmp;
#endif
}
@@ -8,7 +8,7 @@
class J3DModelData;
class J3DMaterialTable;
class J3DModelHierarchy;
struct J3DModelHierarchy;
#if TARGET_PC
#define OFFSET_PTR_V0 BE(u32)
@@ -34,7 +34,8 @@ struct J3DModelFileData {
/* 0x04 */ BE(u32) mMagic2;
/* 0x08 */ u8 field_0x08[4];
/* 0x0C */ BE(u32) mBlockNum;
/* 0x10 */ u8 field_0x10[0x10];
/* 0x10 */ u8 field_0x10[0x1C - 0x10];
/* 0x1C */ int field_0x1c;
/* 0x20 */ J3DModelBlock mBlocks[1];
};
+6
View File
@@ -0,0 +1,6 @@
#ifndef J3DUFUR_H
#define J3DUFUR_H
// NONMATCHING
#endif /* J3DUFUR_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef J3DUMOTION_H
#define J3DUMOTION_H
// NONMATCHING
#endif /* J3DUMOTION_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef J3DUSHADOW_H
#define J3DUSHADOW_H
// NONMATCHING
#endif /* J3DUSHADOW_H */
+2 -2
View File
@@ -15,7 +15,7 @@ struct JASNonCopyable {
JASNonCopyable() {}
~JASNonCopyable() {}
/* 0x0 */ int field_0x0;
/* 0x0 */ void* field_0x0;
}; // Size: 0x4
/**
@@ -56,7 +56,7 @@ public:
mParams.init();
mMaxActiveSe = 0;
mMaxInactiveSe = 0;
field_0x0 = 0;
field_0x0 = NULL;
}
virtual bool isUsingSeqData(const JAISeqDataRegion& seqDataRegion);
+1 -1
View File
@@ -6,7 +6,7 @@
#include "JSystem/JSupport/JSUList.h"
class JAISeqMgr;
class JAISoundChild;
struct JAISoundChild;
/**
* @ingroup jsystem-jaudio
+5 -4
View File
@@ -5,6 +5,7 @@
#include "JSystem/JAudio2/JAIAudible.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "global.h"
#include <cstdint>
class JAISound;
@@ -134,7 +135,7 @@ struct JAISoundStatus_ {
u8 flag8 : 1;
} flags;
} state;
/* 0x4 */ u32 userdata_;
/* 0x4 */ uintptr_t userdata_;
}; // Size: 0x8
/**
@@ -253,7 +254,7 @@ class JAIAudible;
struct JAIAudience;
class JAISe;
class JAISeq;
class JAISoundChild;
struct JAISoundChild;
class JAIStream;
class JAITempoMgr;
@@ -294,8 +295,8 @@ public:
void setAnimationState(u32 state) {
status_.state.flags.animationState = state;
}
u32 getUserData() const { return status_.userdata_; }
void setUserData(u32 userData) { status_.userdata_ = userData; }
uintptr_t getUserData() const { return status_.userdata_; }
void setUserData(uintptr_t userData) { status_.userdata_ = userData; }
JAIAudible* getAudible() { return audible_; }
bool isHandleAttached() const { return handle_ != NULL; }
bool hasLifeTime() const { return status_.field_0x1.flags.flag2; }
+12 -9
View File
@@ -2,10 +2,11 @@
#define JASCALC_H
#include <dolphin/types.h>
#include <limits>
/**
* @ingroup jsystem-jaudio
*
*
*/
struct JASCalc {
static void imixcopy(const s16*, const s16*, s16*, u32);
@@ -15,15 +16,8 @@ struct JASCalc {
static void bzero(void* dest, u32 size);
static f32 pow2(f32);
// Could not make it work as inline - specialization is in JASCalc.cpp
template <typename A, typename B>
static A clamp(B x); /* {
if (std::numeric_limits<A>::min() >= x)
return std::numeric_limits<A>::min();
if (x >= std::numeric_limits<A>::max())
return std::numeric_limits<A>::max();
return x;
} */
static A clamp(B x);
static f32 clamp01(f32 i_value) {
if (i_value <= 0.0f) {
@@ -42,4 +36,13 @@ struct JASCalc {
static const s16 CUTOFF_TO_IIR_TABLE[128][4];
};
template <typename A, typename B>
A JASCalc::clamp(B x) {
if (x <= std::numeric_limits<A>::min())
return std::numeric_limits<A>::min();
if (x >= std::numeric_limits<A>::max())
return std::numeric_limits<A>::max();
return x;
}
#endif /* JASCALC_H */
+1 -1
View File
@@ -8,7 +8,7 @@
#include "JSystem/JAudio2/JASWaveInfo.h"
#include <dolphin/os.h>
class JASDSPChannel;
struct JASDSPChannel;
namespace JASDsp {
struct TChannel;
+1 -1
View File
@@ -112,7 +112,7 @@ namespace JASDsp {
void invalChannelAll();
void initBuffer();
int setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
BOOL changeFXLineParam(u8, u8, u32);
BOOL changeFXLineParam(u8, u8, uintptr_t);
extern u8 const DSPADPCM_FILTER[64];
extern u32 const DSPRES_FILTER[320];
+7
View File
@@ -2,8 +2,15 @@
#define JASGADGET_H
#include "JSystem/JUtility/JUTAssert.h"
#include <cstring>
#include <string>
#ifdef __MWERKS__
#define JAS_GLOBAL_INSTANCE_INIT
#else
#define JAS_GLOBAL_INSTANCE_INIT {}
#endif
/**
* @ingroup jsystem-jaudio
*
+2 -2
View File
@@ -265,13 +265,13 @@ namespace JASKernel {
void setupRootHeap(JKRSolidHeap*, u32);
JKRHeap* getSystemHeap();
JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* getCommandHeap();
void setupAramHeap(u32, u32);
void setupAramHeap(uintptr_t, u32);
JASHeap* getAramHeap();
u32 getAramFreeSize();
u32 getAramSize();
extern JASHeap audioAramHeap;
extern u32 sAramBase;
extern uintptr_t sAramBase;
extern JKRHeap* sSystemHeap;
extern JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* sCommandHeap;
};
+3 -3
View File
@@ -8,10 +8,10 @@ namespace JASResArcLoader {
size_t getResSize(JKRArchive const*, u16);
size_t getResMaxSize(JKRArchive const*);
static void loadResourceCallback(void*);
int loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, u32), u32);
int loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, uintptr_t), uintptr_t);
// from pikmin2
typedef void (*LoadCallback)(u32, u32);
typedef void (*LoadCallback)(u32, uintptr_t);
struct TLoadResInfo {
inline TLoadResInfo(JKRArchive* archive, u16 id, void* buf, u32 size)
@@ -30,7 +30,7 @@ namespace JASResArcLoader {
void* mBuffer; // _08
u32 mBufferSize; // _0C
LoadCallback mCallback; // _10
u32 mCallbackArg; // _14, arg to pass to mCallback along with readResource result
uintptr_t mCallbackArg; // _14, arg to pass to mCallback along with readResource result
OSMessageQueue* mQueue; // _18
};
};
+2 -2
View File
@@ -5,8 +5,8 @@
class JKRHeap;
class JASWaveBank;
class JASBasicWaveBank;
class JASSimpleWaveBank;
struct JASBasicWaveBank;
struct JASSimpleWaveBank;
/**
* @ingroup jsystem-jaudio
+6
View File
@@ -0,0 +1,6 @@
#ifndef JAUAUDIENCE_H
#define JAUAUDIENCE_H
// NONMATCHING
#endif /* JAUAUDIENCE_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef JAUSOUNDOBJECT_H
#define JAUSOUNDOBJECT_H
// NONMATCHING
#endif /* JAUSOUNDOBJECT_H */
+2
View File
@@ -100,6 +100,8 @@ struct TValueIterator
TValueIterator(const void* begin) {
mBegin = reinterpret_cast<const char*>(begin);
bool unused = false;
(void)&unused;
}
const void* get() const { return mBegin; }
+6 -1
View File
@@ -14,7 +14,12 @@ struct TLinkListNode {
pPrev_ = NULL;
}
~TLinkListNode() {}
~TLinkListNode() {
#if DEBUG
JGADGET_ASSERTWARN(77, pNext_==NULL);
JGADGET_ASSERTWARN(78, pPrev_==NULL);
#endif
}
TLinkListNode* getNext() const { return pNext_; }
TLinkListNode* getPrev() const { return pPrev_; }
+1
View File
@@ -5,6 +5,7 @@
#include <iterator>
#include <functional>
#include <algorithm>
#include <cstring>
namespace JGadget {
namespace search {
+1 -1
View File
@@ -2,7 +2,7 @@
#define JGADGET_STD_STREAMBUF_H
#include <dolphin/types.h>
#include <string>
#include <cstring>
namespace JGadget {
template <typename T>
+24 -8
View File
@@ -151,6 +151,10 @@ inline void setTVec3f(const __REGISTER f32* vec_a, __REGISTER f32* vec_b) {
psq_st a_x, 0(vec_b), 0, 0
stfs b_x, 8(vec_b)
};
#else
vec_b[0] = vec_a[0];
vec_b[1] = vec_a[1];
vec_b[2] = vec_a[2];
#endif
}
@@ -163,6 +167,8 @@ inline float fsqrt_step(float mag) {
#ifdef __MWERKS__
f32 root = __frsqrte(mag);
return 0.5f * root * (3.0f - mag * (root * root));
#else
return 1.0f / sqrtf(mag);
#endif
}
@@ -182,6 +188,10 @@ inline void mulInternal(__REGISTER const f32* a, __REGISTER const f32* b, __REGI
psq_st x_y, 0(dst), 0, 0
};
dst[2] = a[2] * b[2];
#else
dst[0] = a[0] * b[0];
dst[1] = a[1] * b[1];
dst[2] = a[2] * b[2];
#endif
}
@@ -296,12 +306,7 @@ struct TVec3<f32> : public Vec {
}
void scale(__REGISTER f32 sc) {
#if DEBUG
x *= sc;
y *= sc;
z *= sc;
#else
#ifdef __MWERKS__
#if PLATFORM_GCN && defined(__MWERKS__)
__REGISTER f32 z;
__REGISTER f32 x_y;
__REGISTER f32* dst = &x;
@@ -315,12 +320,15 @@ struct TVec3<f32> : public Vec {
ps_muls0 zres, z, sc
psq_st zres, 8(dst), 1, 0
};
#endif
#else
x *= sc;
y *= sc;
z *= sc;
#endif
}
void scale(__REGISTER f32 sc, const TVec3<f32>& other) {
#ifdef __MWERKS__
#if PLATFORM_GCN && defined(__MWERKS__)
__REGISTER const f32* src = &other.x;
__REGISTER f32 z;
__REGISTER f32 x_y;
@@ -335,6 +343,10 @@ struct TVec3<f32> : public Vec {
ps_muls0 zres, z, sc
psq_st zres, 8(dst), 1, 0
};
#else
x = other.x * sc;
y = other.y * sc;
z = other.z * sc;
#endif
}
@@ -357,6 +369,10 @@ struct TVec3<f32> : public Vec {
fneg z, z
stfs z, 8(rdst)
};
#else
dst->x = -x;
dst->y = -y;
dst->z = -z;
#endif
}
+3 -6
View File
@@ -2,17 +2,14 @@
#define JHICOMMONMEM_H
#include <dolphin/types.h>
#include "dusk/endian.h"
inline u32 JHIhtonl(u32 v) {
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
return v;
#else
// todo
#endif
return BSWAP32(v);
}
inline u32 JHIntohl(u32 v) {
return v;
return BSWAP32(v);
}
template<typename T> class JHIComPortManager;
+9 -2
View File
@@ -93,6 +93,11 @@
updateSelectorSub(mode, (uintptr_t)pSrc, *pSrc, param_2); \
}
#define DEFINE_UPDATE_COMBO_BOX_ID(T) \
void updateComboBoxID(u32 mode, u32 id, T value, u32 param_4) { \
updateSelectorSub(mode, id, value, param_4); \
}
#define DEFINE_UPDATE_SLIDER(T) \
void updateSlider(u32 mode, T* pSrc, T rangeMin, T rangeMax, u32 param_5) { \
updateSliderSub(mode, (uintptr_t)pSrc, *pSrc, rangeMin, rangeMax, param_5); \
@@ -244,7 +249,7 @@ public:
*/
DEFINE_GEN_SLIDER(u8, 0x100 | jhostio::EKind_8B)
DEFINE_GEN_SLIDER(s16, jhostio::EKind_16B)
DEFINE_GEN_SLIDER(f32, JORPropertyEvent::EKind_FloatValue | jhostio::EKind_32B)
DEFINE_GEN_SLIDER(f32, (u32)JORPropertyEvent::EKind_FloatValue | (u32)jhostio::EKind_32B)
DEFINE_GEN_SLIDER(s32, jhostio::EKind_32B)
DEFINE_GEN_SLIDER_ID(f64, JORPropertyEvent::EKind_ValueID | JORPropertyEvent::EKind_FloatValue)
@@ -265,10 +270,12 @@ public:
DEFINE_START_COMBO_BOX(s16, jhostio::EKind_16B)
DEFINE_START_COMBO_BOX(s32, jhostio::EKind_32B)
DEFINE_START_COMBO_BOX_ID(int, JORPropertyEvent::EKind_ValueID)
DEFINE_START_COMBO_BOX_ID(s32, JORPropertyEvent::EKind_ValueID)
DEFINE_UPDATE_COMBO_BOX(u8)
DEFINE_UPDATE_COMBO_BOX_ID(s32)
void endComboBox() { endSelectorSub(); }
void genComboBoxItem(const char* label, s32 itemNo) {
+2 -2
View File
@@ -158,7 +158,7 @@ public:
u32 readIdxResource(void*, u32, u32);
u32 readResource(void*, u32, u16);
u32 countResource(void) const;
u32 getFileAttribute(u32) const;
u8 getFileAttribute(u32) const;
SDIFileEntry* findNameResource(const char*) const;
bool isSameName(CArcName&, u32, u16) const;
@@ -192,7 +192,7 @@ public:
u32 countFile() const { return mArcInfoBlock->num_file_entries; }
s32 countDirectory() const { return mArcInfoBlock->num_nodes; }
u8 getMountMode() const { return mMountMode; }
bool isFileEntry(u32 param_0) {
bool isFileEntry(u32 param_0) const {
return getFileAttribute(param_0) & 1;
}
+12 -1
View File
@@ -5,6 +5,7 @@
#include <dolphin/os.h>
#include "global.h"
#include <new>
#include <cstdint>
class JKRHeap;
typedef void (*JKRErrorHandler)(void*, u32, int);
@@ -72,7 +73,7 @@ public:
JKRHeap* find(void* ptr) const;
JKRHeap* findAllHeap(void* ptr) const;
void dispose_subroutine(u32 start, u32 end);
void dispose_subroutine(uintptr_t start, uintptr_t end);
bool dispose(void* ptr, u32 size);
void dispose(void* begin, void* end);
void dispose();
@@ -210,16 +211,22 @@ public:
static JKRErrorHandler mErrorHandler;
};
#ifndef TARGET_PC
void* operator new(size_t size);
#endif
void* operator new(size_t size, int alignment);
void* operator new(size_t size, JKRHeap* heap, int alignment);
#ifndef TARGET_PC
void* operator new[](size_t size);
#endif
void* operator new[](size_t size, int alignment);
void* operator new[](size_t size, JKRHeap* heap, int alignment);
#ifndef TARGET_PC
void operator delete(void* ptr);
void operator delete[](void* ptr);
#endif
void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment);
@@ -275,6 +282,10 @@ inline s32 JKRResizeMemBlock(JKRHeap* heap, void* ptr, u32 size) {
return JKRHeap::resize(ptr, size, heap);
}
inline JKRHeap* JKRFindHeap(void* ptr) {
return JKRHeap::findFromRoot(ptr);
}
inline JKRHeap* JKRGetRootHeap() {
return JKRHeap::getRootHeap();
}
+53 -53
View File
@@ -27,11 +27,11 @@ struct JPABaseShapeData {
/* 0x1C */ u8 mAlphaRef1;
/* 0x1D */ u8 mZModeCfg;
/* 0x1E */ u8 mTexFlg;
/* 0x1F */ u8 mTexAnmNum;
/* 0x1F */ u8 texAnmKeyNum;
/* 0x20 */ u8 mTexIdx;
/* 0x21 */ u8 mClrFlg;
/* 0x22 */ u8 mClrPrmKeyNum;
/* 0x23 */ u8 mClrEnvKeyNum;
/* 0x22 */ u8 prmAnmKeyNum;
/* 0x23 */ u8 envAnmKeyNum;
/* 0x24 */ s16 mClrAnmFrmMax;
/* 0x26 */ GXColor mClrPrm;
/* 0x2A */ GXColor mClrEnv;
@@ -57,62 +57,62 @@ public:
static GXTevColorArg st_ca[6][4];
static GXTevAlphaArg st_aa[2][4];
GXBlendMode getBlendMode() const { return st_bm[mpData->mBlendModeCfg & 0x03]; }
GXBlendFactor getBlendSrc() const { return st_bf[(mpData->mBlendModeCfg >> 2) & 0x0F]; }
GXBlendFactor getBlendDst() const { return st_bf[(mpData->mBlendModeCfg >> 6) & 0x0F]; }
GXLogicOp getLogicOp() const { return st_lo[(mpData->mBlendModeCfg >> 10) & 0x0F]; }
GXBool getZCompLoc() const { return (GXBool)((mpData->mZModeCfg >> 5) & 0x01); }
GXBlendMode getBlendMode() const { return st_bm[pBsd->mBlendModeCfg & 0x03]; }
GXBlendFactor getBlendSrc() const { return st_bf[(pBsd->mBlendModeCfg >> 2) & 0x0F]; }
GXBlendFactor getBlendDst() const { return st_bf[(pBsd->mBlendModeCfg >> 6) & 0x0F]; }
GXLogicOp getLogicOp() const { return st_lo[(pBsd->mBlendModeCfg >> 10) & 0x0F]; }
GXBool getZCompLoc() const { return (GXBool)((pBsd->mZModeCfg >> 5) & 0x01); }
GXBool getZEnable() const { return (GXBool)(mpData->mZModeCfg & 0x01); }
GXCompare getZCmp() const { return st_c[(mpData->mZModeCfg >> 1) & 0x07]; }
GXBool getZUpd() const { return (GXBool)((mpData->mZModeCfg >> 4) & 0x01); }
GXBool getZEnable() const { return (GXBool)(pBsd->mZModeCfg & 0x01); }
GXCompare getZCmp() const { return st_c[(pBsd->mZModeCfg >> 1) & 0x07]; }
GXBool getZUpd() const { return (GXBool)((pBsd->mZModeCfg >> 4) & 0x01); }
GXCompare getAlphaCmp0() const { return st_c[mpData->mAlphaCompareCfg & 0x07]; }
u8 getAlphaRef0() const { return mpData->mAlphaRef0; }
GXAlphaOp getAlphaOp() const { return st_ao[(mpData->mAlphaCompareCfg >> 3) & 0x03]; }
GXCompare getAlphaCmp1() const { return st_c[(mpData->mAlphaCompareCfg >> 5) & 0x07]; }
u8 getAlphaRef1() const { return mpData->mAlphaRef1; }
GXCompare getAlphaCmp0() const { return st_c[pBsd->mAlphaCompareCfg & 0x07]; }
u8 getAlphaRef0() const { return pBsd->mAlphaRef0; }
GXAlphaOp getAlphaOp() const { return st_ao[(pBsd->mAlphaCompareCfg >> 3) & 0x03]; }
GXCompare getAlphaCmp1() const { return st_c[(pBsd->mAlphaCompareCfg >> 5) & 0x07]; }
u8 getAlphaRef1() const { return pBsd->mAlphaRef1; }
const GXTevColorArg* getTevColorArg() const { return st_ca[(mpData->mFlags >> 0x0F) & 0x07]; }
const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(mpData->mFlags >> 0x12) & 0x01]; }
const GXTevColorArg* getTevColorArg() const { return st_ca[(pBsd->mFlags >> 0x0F) & 0x07]; }
const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(pBsd->mFlags >> 0x12) & 0x01]; }
u32 getType() const { return (mpData->mFlags >> 0) & 0x0F; }
u32 getDirType() const { return (mpData->mFlags >> 4) & 0x07; }
u32 getRotType() const { return (mpData->mFlags >> 7) & 0x07; }
u32 getBasePlaneType() const { return (mpData->mFlags >> 10) & 0x01; }
u32 getTilingS() const { return (mpData->mFlags >> 25) & 0x01; }
u32 getTilingT() const { return (mpData->mFlags >> 26) & 0x01; }
BOOL isGlblClrAnm() const { return mpData->mFlags & 0x00001000; }
BOOL isGlblTexAnm() const { return mpData->mFlags & 0x00004000; }
BOOL isPrjTex() const { return mpData->mFlags & 0x00100000; }
bool isDrawFwdAhead() const { return !!(mpData->mFlags & 0x00200000); }
bool isDrawPrntAhead() const { return !!(mpData->mFlags & 0x00400000); }
bool isClipOn() const { return !!(mpData->mFlags & 0x00800000); }
BOOL isTexCrdAnm() const { return mpData->mFlags & 0x01000000; }
bool isNoDrawParent() const { return !!(mpData->mFlags & 0x08000000); }
bool isNoDrawChild() const { return !!(mpData->mFlags & 0x10000000); }
u32 getType() const { return (pBsd->mFlags >> 0) & 0x0F; }
u32 getDirType() const { return (pBsd->mFlags >> 4) & 0x07; }
u32 getRotType() const { return (pBsd->mFlags >> 7) & 0x07; }
u32 getBasePlaneType() const { return (pBsd->mFlags >> 10) & 0x01; }
u32 getTilingS() const { return (pBsd->mFlags >> 25) & 0x01; }
u32 getTilingT() const { return (pBsd->mFlags >> 26) & 0x01; }
BOOL isGlblClrAnm() const { return pBsd->mFlags & 0x00001000; }
BOOL isGlblTexAnm() const { return pBsd->mFlags & 0x00004000; }
BOOL isPrjTex() const { return pBsd->mFlags & 0x00100000; }
BOOL isDrawFwdAhead() const { return pBsd->mFlags & 0x00200000; }
BOOL isDrawPrntAhead() const { return pBsd->mFlags & 0x00400000; }
BOOL isClipOn() const { return pBsd->mFlags & 0x00800000; }
BOOL isTexCrdAnm() const { return pBsd->mFlags & 0x01000000; }
BOOL isNoDrawParent() const { return pBsd->mFlags >> 27 & 1; }
BOOL isNoDrawChild() const { return pBsd->mFlags >> 28 & 1; }
BOOL isPrmAnm() const { return mpData->mClrFlg & 0x02; }
BOOL isEnvAnm() const { return mpData->mClrFlg & 0x08; }
u8 getClrAnmType() const { return (mpData->mClrFlg >> 4) & 0x07; }
s16 getClrAnmMaxFrm() const { return mpData->mClrAnmFrmMax; }
void getPrmClr(GXColor* dst) { *dst = mpData->mClrPrm; }
void getPrmClr(s16 idx, GXColor* dst) { *dst = mpPrmClrAnmTbl[idx]; }
void getEnvClr(GXColor* dst) { *dst = mpData->mClrEnv; }
void getEnvClr(s16 idx, GXColor* dst) { *dst = mpEnvClrAnmTbl[idx]; }
BOOL isPrmAnm() const { return pBsd->mClrFlg & 0x02; }
BOOL isEnvAnm() const { return pBsd->mClrFlg & 0x08; }
u32 getClrAnmType() const { return (pBsd->mClrFlg >> 4) & 0x07; }
s16 getClrAnmMaxFrm() const { return pBsd->mClrAnmFrmMax; }
void getPrmClr(GXColor* dst) const { *dst = pBsd->mClrPrm; }
void getPrmClr(s16 idx, GXColor* dst) const { *dst = mpPrmClrAnmTbl[idx]; }
void getEnvClr(GXColor* dst) const { *dst = pBsd->mClrEnv; }
void getEnvClr(s16 idx, GXColor* dst) const { *dst = mpEnvClrAnmTbl[idx]; }
BOOL isTexAnm() const { return mpData->mTexFlg & 0x01; }
u8 getTexAnmType() const { return (mpData->mTexFlg >> 2) & 0x07; }
u32 getTexIdx() const { return mpData->mTexIdx; }
BOOL isTexAnm() const { return pBsd->mTexFlg & 0x01; }
u32 getTexAnmType() const { return (pBsd->mTexFlg >> 2) & 0x07; }
u8 getTexIdx() const { return pBsd->mTexIdx; }
u8 getTexIdx(u8 idx) const { return mpTexIdxAnimTbl[idx]; }
f32 getBaseSizeX() const { return mpData->mBaseSizeX; }
f32 getBaseSizeY() const { return mpData->mBaseSizeY; }
u8 getClrLoopOfstMask() const { return mpData->mClrAnmRndmMask; }
u32 getClrLoopOfst(u32 param_1) const { return getClrLoopOfstMask() & param_1; }
u8 getTexLoopOfstMask() const { return mpData->mTexAnmRndmMask; }
u32 getTexLoopOfst(u8 param_1) const { return getTexLoopOfstMask() & param_1; }
u8 getLoopOfstValue() const { return mpData->mAnmRndm; }
f32 getBaseSizeX() const { return pBsd->mBaseSizeX; }
f32 getBaseSizeY() const { return pBsd->mBaseSizeY; }
u8 getClrLoopOfstMask() const { return pBsd->mClrAnmRndmMask; }
s32 getClrLoopOfst(u8 param_1) const { return getClrLoopOfstMask() & param_1; }
u8 getTexLoopOfstMask() const { return pBsd->mTexAnmRndmMask; }
s32 getTexLoopOfst(u8 param_1) const { return getTexLoopOfstMask() & param_1; }
u8 getLoopOfstValue() const { return pBsd->mAnmRndm; }
f32 getIncTransX() const { return ((f32*)mpTexCrdMtxAnmTbl)[5]; }
f32 getInitTransX() const { return ((f32*)mpTexCrdMtxAnmTbl)[0]; }
@@ -124,10 +124,10 @@ public:
f32 getInitScaleY() const { return ((f32*)mpTexCrdMtxAnmTbl)[3]; }
f32 getIncRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[9]; }
f32 getInitRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[4]; }
u8 getTexAnmKeyNum() const { return mpData->mTexAnmNum; }
u8 getTexAnmKeyNum() const { return pBsd->texAnmKeyNum; }
public:
/* 0x00 */ const JPABaseShapeData* mpData;
/* 0x00 */ const JPABaseShapeData* pBsd;
/* 0x04 */ const void* mpTexCrdMtxAnmTbl;
/* 0x08 */ const u8* mpTexIdxAnimTbl;
/* 0x0C */ GXColor* mpPrmClrAnmTbl;
+23 -23
View File
@@ -63,7 +63,7 @@ public:
void init();
void create(JPAEmitterWorkData*);
void calc(JPAEmitterWorkData* work) { mpCalcVolumeFunc(work); }
void calc(JPAEmitterWorkData* work) const { mpCalcVolumeFunc(work); }
s16 getStartFrame() const { return mpData->mStartFrame; }
u32 getResUserWork() const { return mpData->mResUserWork; }
@@ -71,32 +71,32 @@ public:
u32 getVolumeType() const { return (mpData->mFlags >> 8) & 0x07; }
u16 getDivNumber() const { return mpData->mDivNumber; }
f32 getRateRndm() const { return mpData->mRateRndm; }
void getEmitterScl(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterScl.x, mpData->mEmitterScl.y, mpData->mEmitterScl.z);
void getEmitterScl(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterScl.x, mpData->mEmitterScl.y, mpData->mEmitterScl.z);
}
void getEmitterTrs(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterTrs.x, mpData->mEmitterTrs.y, mpData->mEmitterTrs.z);
void getEmitterTrs(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterTrs.x, mpData->mEmitterTrs.y, mpData->mEmitterTrs.z);
}
void getEmitterDir(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z);
void getEmitterDir(JGeometry::TVec3<f32>* vec) const {
vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z);
}
void getEmitterRot(JGeometry::TVec3<s16>* vec) const {
vec->set(mpData->mEmitterRot.x, mpData->mEmitterRot.y, mpData->mEmitterRot.z);
}
s16 getMaxFrame() { return mpData->mMaxFrame; }
s16 getLifetime() { return mpData->mLifeTime; }
u16 getVolumeSize() { return mpData->mVolumeSize; }
f32 getRate() { return mpData->mRate; }
u8 getRateStep() { return mpData->mRateStep; }
f32 getVolumeSweep() { return mpData->mVolumeSweep; }
f32 getVolumeMinRad() { return mpData->mVolumeMinRad; }
f32 getInitVelOmni() { return mpData->mInitialVelOmni; }
f32 getInitVelAxis() { return mpData->mInitialVelAxis; }
f32 getInitVelDir() { return mpData->mInitialVelDir; }
f32 getInitVelDirSp() { return mpData->mSpread; }
f32 getInitVelRndm() { return mpData->mInitialVelRndm; }
void getEmitterRot(JGeometry::TVec3<s16>* vec) const {
vec->set(mpData->mEmitterRot.x, mpData->mEmitterRot.y, mpData->mEmitterRot.z);
}
s16 getMaxFrame() const { return mpData->mMaxFrame; }
s16 getLifetime() const { return mpData->mLifeTime; }
u16 getVolumeSize() const { return mpData->mVolumeSize; }
f32 getRate() const { return mpData->mRate; }
u8 getRateStep() const { return mpData->mRateStep; }
f32 getVolumeSweep() const { return mpData->mVolumeSweep; }
f32 getVolumeMinRad() const { return mpData->mVolumeMinRad; }
f32 getInitVelOmni() const { return mpData->mInitialVelOmni; }
f32 getInitVelAxis() const { return mpData->mInitialVelAxis; }
f32 getInitVelDir() const { return mpData->mInitialVelDir; }
f32 getInitVelDirSp() const { return mpData->mSpread; }
f32 getInitVelRndm() const { return mpData->mInitialVelRndm; }
f32 getInitVelRatio() const { return mpData->mInitialVelRatio; }
f32 getAirRes() { return mpData->mAirResist; }
f32 getAirRes() const { return mpData->mAirResist; }
f32 getLifetimeRndm() const { return mpData->mLifeTimeRndm; }
f32 getMomentRndm() const { return mpData->mMoment; }
+2 -2
View File
@@ -115,7 +115,7 @@ public:
void setStatus(u32 status) { mStatus |= status; }
void clearStatus(u32 status) { mStatus &= ~status; }
u32 checkStatus(u32 status) const { return (mStatus & status); }
bool checkFlag(u32 flag) const { return !!(mpRes->getDyn()->getFlag() & flag); }
u32 checkFlag(u32 flag) const { return pRes->getDyn()->getFlag() & flag; }
u8 getResourceManagerID() const { return mResMgrID; }
u8 getGroupID() const { return mGroupID; }
u8 getDrawTimes() const { return mDrawTimes; }
@@ -258,7 +258,7 @@ public:
/* 0xD4 */ JPAList<JPABaseParticle> mAlivePtclChld;
/* 0xE0 */ JPAList<JPABaseParticle>* mpPtclPool;
/* 0xE4 */ JPAEmitterManager* mpEmtrMgr;
/* 0xE8 */ JPAResource* mpRes;
/* 0xE8 */ JPAResource* pRes;
/* 0xEC */ JPAEmitterCallBack* mpEmtrCallBack;
/* 0xF0 */ JPAParticleCallBack* mpPtclCallBack;
/* 0xF4 */ u32 mStatus;
+2 -2
View File
@@ -33,8 +33,8 @@ public:
s8 getExpScale() const { return mpData->mExpScale; }
u8 getIndTexIdx() const { return mpData->mIndTexIdx; }
u8 getSecTexIdx() const { return mpData->mSecTexIdx; }
bool isUseIndirect() const { return !!(mpData->mFlags & 0x01); }
bool isUseSecTex() const { return !!(mpData->mFlags & 0x0100); }
BOOL isUseIndirect() const { return mpData->mFlags & 0x01; }
BOOL isUseSecTex() const { return mpData->mFlags & 0x0100; }
public:
const JPAExTexShapeData* mpData;
+41 -41
View File
@@ -21,32 +21,27 @@ public:
/* 0x04 */ JGeometry::TVec3<f32> mAccel;
};
class JPAFieldVortex : public JPAFieldBase {
class JPAFieldGravity : public JPAFieldBase {
public:
void prepare(JPAEmitterWorkData*, JPAFieldBlock*);
void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*);
~JPAFieldVortex() {}
/* 0x10 */ JGeometry::TVec3<f32> field_0x10;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
~JPAFieldGravity() {}
};
class JPAFieldSpin : public JPAFieldBase {
class JPAFieldAir : public JPAFieldBase {
public:
void prepare(JPAEmitterWorkData*, JPAFieldBlock*);
void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*);
~JPAFieldSpin() {}
/* 0x10 */ JGeometry::TVec3<f32> field_0x10;
/* 0x1C */ JGeometry::TVec3<f32> field_0x1c;
/* 0x28 */ JGeometry::TVec3<f32> field_0x28;
~JPAFieldAir() {}
};
class JPAFieldRandom : public JPAFieldBase {
class JPAFieldMagnet : public JPAFieldBase {
public:
void prepare(JPAEmitterWorkData*, JPAFieldBlock*);
void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*);
~JPAFieldRandom() {}
~JPAFieldMagnet() {}
/* 0x10 */ JGeometry::TVec3<f32> mDir;
};
class JPAFieldNewton : public JPAFieldBase {
@@ -59,20 +54,21 @@ public:
/* 0x1C */ f32 mCutoff;
};
class JPAFieldMagnet : public JPAFieldBase {
class JPAFieldVortex : public JPAFieldBase {
public:
void prepare(JPAEmitterWorkData*, JPAFieldBlock*);
void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*);
~JPAFieldMagnet() {}
~JPAFieldVortex() {}
/* 0x10 */ JGeometry::TVec3<f32> mDir;
/* 0x10 */ JGeometry::TVec3<f32> field_0x10;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
};
class JPAFieldGravity : public JPAFieldBase {
class JPAFieldRandom : public JPAFieldBase {
public:
void prepare(JPAEmitterWorkData*, JPAFieldBlock*);
void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*);
~JPAFieldGravity() {}
~JPAFieldRandom() {}
};
class JPAFieldDrag : public JPAFieldBase {
@@ -92,11 +88,15 @@ public:
/* 0x28 */ JGeometry::TVec3<f32> field_0x28;
};
class JPAFieldAir : public JPAFieldBase {
class JPAFieldSpin : public JPAFieldBase {
public:
void prepare(JPAEmitterWorkData*, JPAFieldBlock*);
void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*);
~JPAFieldAir() {}
~JPAFieldSpin() {}
/* 0x10 */ JGeometry::TVec3<f32> field_0x10;
/* 0x1C */ JGeometry::TVec3<f32> field_0x1c;
/* 0x28 */ JGeometry::TVec3<f32> field_0x28;
};
// unknown name
@@ -122,36 +122,36 @@ public:
JPAFieldBlock(u8 const*, JKRHeap*);
void init(JKRHeap*);
u32 getType() { return mpData->mFlags & 0xF; }
u32 getAddType() { return (mpData->mFlags >> 8) & 3; }
u32 getSttFlag() { return mpData->mFlags >> 16; }
bool checkStatus(u16 flag) { return flag & getSttFlag(); }
u32 getType() const { return mpData->mFlags & 0xF; }
u32 getAddType() const { return (mpData->mFlags >> 8) & 3; }
u32 getSttFlag() const { return mpData->mFlags >> 16; }
u32 checkStatus(u16 flag) { return flag & getSttFlag(); }
f32 getMagRndm() const { return mpData->mMagRndm; }
f32 getVal1() const { return mpData->mVal1; }
f32 getFadeInTime() { return mpData->mFadeInTime; }
f32 getFadeOutTime() { return mpData->mFadeOutTime; }
f32 getEnTime() { return mpData->mEnTime; }
f32 getDisTime() { return mpData->mDisTime; }
u8 getCycle() { return mpData->mCycle; }
f32 getFadeInRate() { return mFadeInRate; }
f32 getFadeOutRate() { return mFadeOutRate; }
JGeometry::TVec3<f32>& getPos() { return mPos; }
JGeometry::TVec3<f32>& getDir() { return mDir; }
f32 getFadeInTime() const { return mpData->mFadeInTime; }
f32 getFadeOutTime() const { return mpData->mFadeOutTime; }
f32 getEnTime() const { return mpData->mEnTime; }
f32 getDisTime() const { return mpData->mDisTime; }
u8 getCycle() const { return mpData->mCycle; }
f32 getFadeInRate() const { return mFadeInRate; }
f32 getFadeOutRate() const { return mFadeOutRate; }
const JGeometry::TVec3<f32>& getPos() const { return mPos; }
const JGeometry::TVec3<f32>& getDir() const { return mDir; }
f32 getMag() const { return mMag; }
void getPosOrig(JGeometry::TVec3<f32>* pos) { pos->set(mpData->mPos); }
void getDirOrig(JGeometry::TVec3<f32>* dir) { dir->set(mpData->mDir); }
f32 getMagOrig() { return mpData->mMag; }
void getPosOrig(JGeometry::TVec3<f32>* pos) const { pos->set(mpData->mPos); }
void getDirOrig(JGeometry::TVec3<f32>* dir) const { dir->set(mpData->mDir); }
f32 getMagOrig() const { return mpData->mMag; }
void initOpParam() {
getPosOrig(&mPos);
getDirOrig(&mDir);
mMag = getMagOrig();
}
void prepare(JPAEmitterWorkData* work) { mpField->prepare(work, this); }
void calc(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { mpField->calc(work, this, ptcl); }
void prepare(JPAEmitterWorkData* work) { pFld->prepare(work, this); }
void calc(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { pFld->calc(work, this, ptcl); }
private:
/* 0x00 */ const JPAFieldBlockData* mpData;
/* 0x04 */ JPAFieldBase* mpField;
/* 0x04 */ JPAFieldBase* pFld;
/* 0x08 */ f32 mFadeInRate;
/* 0x0C */ f32 mFadeOutRate;
/* 0x10 */ JGeometry::TVec3<f32> mPos;
+4 -1
View File
@@ -11,7 +11,10 @@ struct JPAKeyBlock {
JPAKeyBlock(u8 const*);
f32 calc(f32);
u8 getID() { return mDataStart[8]; }
u8 getID() const { return mDataStart[8]; }
u8 getKeyNum() const { return mDataStart[9]; }
BOOL isLoop() const { return mDataStart[11]; }
const f32* getKeyData() const { return field_0x4; }
const u8* mDataStart;
const f32* field_0x4;
+6 -10
View File
@@ -12,8 +12,8 @@ struct JPANode {
JPANode() : mpPrev(NULL), mpNext(NULL) {
}
~JPANode() {}
JPANode<T>* getPrev() { return mpPrev; }
JPANode<T>* getNext() { return mpNext; }
JPANode<T>* getPrev() const { return mpPrev; }
JPANode<T>* getNext() const { return mpNext; }
T* getObject() { return &mData; }
/* 0x00 */ JPANode<T>* mpPrev;
@@ -48,8 +48,7 @@ struct JPAList {
} else {
mpLast = node;
mpFirst = node;
node->mpPrev = NULL;
node->mpNext = NULL;
node->mpNext = node->mpPrev = NULL;
}
mNum++;
@@ -75,8 +74,7 @@ struct JPAList {
if (mNum == 1) {
ret = mpFirst;
mpLast = NULL;
mpFirst = NULL;
mpFirst = mpLast = NULL;
mNum--;
} else if (mNum) {
ret = mpFirst;
@@ -93,8 +91,7 @@ struct JPAList {
if (mNum == 1) {
ret = mpLast;
mpLast = NULL;
mpFirst = NULL;
mpFirst = mpLast = NULL;
mNum--;
} else if (mNum) {
ret = mpLast;
@@ -120,8 +117,7 @@ struct JPAList {
mpLast = node->mpPrev;
mNum--;
} else {
mpLast = NULL;
mpFirst = NULL;
mpFirst = mpLast = NULL;
mNum--;
}
return node;
+2 -4
View File
@@ -33,17 +33,15 @@ public:
void getOffsetPosition(JGeometry::TVec3<f32>& pos) { pos.set(mOffsetPosition); }
void getOffsetPosition(JGeometry::TVec3<f32>* pos) const { pos->set(mOffsetPosition); }
u16 getRotateAngle() const { return mRotateAngle; }
void getGlobalPosition(JGeometry::TVec3<f32>& pos) const { pos.set(mPosition); }
void getGlobalPosition(JGeometry::TVec3<f32>* pos) const { pos->set(mPosition); }
f32 getParticleScaleX() const { return mParticleScaleX; }
f32 getParticleScaleY() const { return mParticleScaleY; }
void setStatus(u32 flag) { mStatus |= flag; }
u32 checkStatus(u32 flag) { return mStatus & flag; }
u32 checkStatus(u32 flag) const { return mStatus & flag; }
void initStatus(u32 status) { mStatus = status; }
void setInvisibleParticleFlag() { setStatus(8); }
void setDeleteParticleFlag() { setStatus(2); }
void getVelVec(JGeometry::TVec3<f32>& vec) const { vec.set(mVelocity); }
void getLocalPosition(JGeometry::TVec3<f32>& vec) const { vec.set(mLocalPosition); }
void getVelVec(JGeometry::TVec3<f32>* vec) const { vec->set(mVelocity); }
void getLocalPosition(JGeometry::TVec3<f32>* vec) const { vec->set(mLocalPosition); }
void getBaseAxis(JGeometry::TVec3<f32>& vec) const { vec.set(mBaseAxis); }
void getBaseAxis(JGeometry::TVec3<f32>* vec) const { vec->set(mBaseAxis); }
+16 -16
View File
@@ -37,13 +37,13 @@ public:
void calcWorkData_c(JPAEmitterWorkData*);
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; }
JPABaseShape* getBsp() const { return pBsp; }
JPAExtraShape* getEsp() const { return pEsp; }
JPAChildShape* getCsp() const { return pCsp; }
JPAExTexShape* getEts() const { return pEts; }
JPADynamicsBlock* getDyn() const { return pDyn; }
u32 getTexIdx(u32 idx) const { return mpTDB1[idx]; }
const u16 getTexIdx(u8 idx) { return mpTDB1[idx]; }
u16 getUsrIdx() const { return mUsrIdx; }
public:
@@ -57,18 +57,18 @@ public:
/* 0x14 */ ParticleFunc* mpCalcParticleChildFuncList;
/* 0x18 */ ParticleFunc* mpDrawParticleChildFuncList;
/* 0x1C */ JPABaseShape* mpBaseShape;
/* 0x20 */ JPAExtraShape* mpExtraShape;
/* 0x24 */ JPAChildShape* mpChildShape;
/* 0x28 */ JPAExTexShape* mpExTexShape;
/* 0x2C */ JPADynamicsBlock* mpDynamicsBlock;
/* 0x30 */ JPAFieldBlock** mpFieldBlocks;
/* 0x34 */ JPAKeyBlock** mpKeyBlocks;
/* 0x1C */ JPABaseShape* pBsp;
/* 0x20 */ JPAExtraShape* pEsp;
/* 0x24 */ JPAChildShape* pCsp;
/* 0x28 */ JPAExTexShape* pEts;
/* 0x2C */ JPADynamicsBlock* pDyn;
/* 0x30 */ JPAFieldBlock** ppFld;
/* 0x34 */ JPAKeyBlock** ppKey;
/* 0x38 */ u16 const* mpTDB1;
/* 0x3C */ u16 mUsrIdx;
/* 0x3E */ u8 mFieldBlockNum;
/* 0x3F */ u8 mKeyBlockNum;
/* 0x40 */ u8 mTDB1Num;
/* 0x3E */ u8 fldNum;
/* 0x3F */ u8 keyNum;
/* 0x40 */ u8 texNum;
/* 0x41 */ u8 mpCalcEmitterFuncListNum;
/* 0x42 */ u8 mpDrawEmitterFuncListNum;
/* 0x43 */ u8 mpDrawEmitterChildFuncListNum;
@@ -21,16 +21,16 @@ public:
void registTex(JPATexture*);
u32 getResUserWork(u16) const;
void load(u16 idx, GXTexMapID texMapID) { mpTexArr[idx]->load(texMapID); }
void load(u16 idx, GXTexMapID texMapID) { pTexAry[idx]->load(texMapID); }
public:
/* 0x00 */ JKRHeap* mpHeap;
/* 0x04 */ JPAResource** mpResArr;
/* 0x08 */ JPATexture** mpTexArr;
/* 0x0C */ u16 mResMax;
/* 0x0E */ u16 mResNum;
/* 0x10 */ u16 mTexMax;
/* 0x12 */ u16 mTexNum;
/* 0x04 */ JPAResource** pResAry;
/* 0x08 */ JPATexture** pTexAry;
/* 0x0C */ u16 resMaxNum;
/* 0x0E */ u16 resRegNum;
/* 0x10 */ u16 texMaxNum;
/* 0x12 */ u16 texRegNum;
};
#endif /* JPARESOURCEMANAGER_H */
+1 -1
View File
@@ -14,7 +14,7 @@ extern const char ga4cSignature[4];
const int PARAGRAPH_DATA = 1;
typedef enum TEComposite {
enum TEComposite {
/* 0x0 */ COMPOSITE_NONE,
/* 0x1 */ COMPOSITE_RAW,
/* 0x2 */ COMPOSITE_IDX,
@@ -83,9 +83,10 @@ public:
transformOnGet_enable(param_0);
}
void transform_setOrigin_TxyzRy(const Vec& xyz, f32 rotY) {
bool transform_setOrigin_TxyzRy(const Vec& xyz, f32 rotY) {
transformOnSet_setOrigin_TxyzRy(xyz, rotY);
transformOnGet_setOrigin_TxyzRy(xyz, rotY);
return true;
}
void transform_setOrigin(const Vec& xyz, f32 rotY) {
+2 -1
View File
@@ -5,6 +5,7 @@
#include "JSystem/JStudio/JStudio/object-id.h"
#include "JSystem/JStudio/JStudio/stb-data-parse.h"
#include <dolphin/os.h>
#include <cstdint>
namespace JStudio {
class TObject;
@@ -86,7 +87,7 @@ public:
const void* getSequence() const { return pSequence; }
void setSequence_(const void* arg1) { pSequence = arg1; }
const void* getSequence_offset(s32 i_no) const {
int s32Val = (intptr_t)getSequence();
intptr_t s32Val = (intptr_t)getSequence();
return (const void*)(s32Val + i_no);
}
const void* getSequence_next() const { return pSequence_next; }
@@ -27,6 +27,7 @@ struct TCreateObject : public JStudio::TCreateObject {
JAISoundStarter* get_pJAISoundStarter_() { return pJAISoundStarter_; }
const JStage::TSystem* get_pJSGSystem_() { return pJSGSystem_; }
bool isPermit_onExit_notEnd() { return mPermit_onExit_notEnd; }
void setPermit_onExit_notEnd(bool value) { mPermit_onExit_notEnd = value; }
/* 0x0C */ JAISoundStarter* pJAISoundStarter_;
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
@@ -2,11 +2,11 @@
#define JSTUDIO_JSTAGE_CONTROL_H
#include "JSystem/JGadget/pointer.h"
#include "JSystem/JStage/JSGLight.h"
#include "JSystem/JStage/JSGActor.h"
#include "JSystem/JStage/JSGAmbientLight.h"
#include "JSystem/JStage/JSGCamera.h"
#include "JSystem/JStage/JSGFog.h"
#include "JSystem/JStage/JSGLight.h"
#include "JSystem/JStage/JSGSystem.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#include "JSystem/JStudio/JStudio/jstudio-math.h"
+15 -28
View File
@@ -18,37 +18,24 @@ public:
s32 write(const void*, s32);
void write(const char*);
#ifdef TARGET_PC
JSUOutputStream& operator<<(uintptr_t param_0) {
write(&param_0, sizeof(uintptr_t));
return *this;
}
#endif
JSUOutputStream& operator<<(u32 param_0) {
write(&param_0, sizeof(u32));
return *this;
#define JSU_OUTPUTSTREAM_OPERATOR(T) \
JSUOutputStream& operator<<(T val) { \
write(&val, sizeof(T)); \
return *this; \
}
JSUOutputStream& operator<<(s32 param_0) {
write(&param_0, sizeof(s32));
return *this;
}
JSU_OUTPUTSTREAM_OPERATOR(signed char)
JSU_OUTPUTSTREAM_OPERATOR(unsigned char)
JSU_OUTPUTSTREAM_OPERATOR(signed short)
JSU_OUTPUTSTREAM_OPERATOR(unsigned short)
JSU_OUTPUTSTREAM_OPERATOR(int)
JSU_OUTPUTSTREAM_OPERATOR(unsigned int)
JSU_OUTPUTSTREAM_OPERATOR(signed long)
JSU_OUTPUTSTREAM_OPERATOR(unsigned long)
JSU_OUTPUTSTREAM_OPERATOR(signed long long)
JSU_OUTPUTSTREAM_OPERATOR(unsigned long long)
JSUOutputStream& operator<<(s16 param_0) {
write(&param_0, sizeof(s16));
return *this;
}
JSUOutputStream& operator<<(u16 param_0) {
write(&param_0, sizeof(u16));
return *this;
}
JSUOutputStream& operator<<(u8 param_0) {
write(&param_0, sizeof(u8));
return *this;
}
#undef JSU_OUTPUTSTREAM_OPERATOR
JSUOutputStream& operator<<(const char* param_0) {
write(param_0);
+1 -5
View File
@@ -18,13 +18,9 @@ T* JSUConvertOffsetToPtr(const void* ptr, uintptr_t offset) {
*
*/
template <typename T>
#if TARGET_PC
T* JSUConvertOffsetToPtr(const void* ptr, u32 offset) {
#else
T* JSUConvertOffsetToPtr(const void* ptr, const void* offset) {
#endif
T* ret;
if (offset == NULL) {
if (offset == 0) {
ret = NULL;
} else {
ret = (T*)((intptr_t)ptr + (intptr_t)offset);
+3 -3
View File
@@ -60,13 +60,13 @@ JUTAssertion::showAssert_f(JUTAssertion::getSDevice(), __FILE__, __LINE__, MSG,
OSPanic(__FILE__, __LINE__, "Halt");
#define JUT_WARN_DEVICE(LINE, DEVICE, ...) \
JUTAssertion::setWarningMessage_f(DEVICE, __FILE__, __LINE__, __VA_ARGS__); \
JUTAssertion::setWarningMessage_f(DEVICE, const_cast<char*>(__FILE__), __LINE__, __VA_ARGS__); \
#define JUT_LOG(LINE, ...) \
JUTAssertion::setLogMessage_f(JUTAssertion::getSDevice(), __FILE__, __LINE__, __VA_ARGS__)
JUTAssertion::setLogMessage_f(JUTAssertion::getSDevice(), const_cast<char*>(__FILE__), __LINE__, __VA_ARGS__)
#define JUT_SET_CONFIRM(LINE, COND) \
JUTAssertion::setConfirmMessage(JUTAssertion::getSDevice(), __FILE__, __LINE__, COND, #COND)
JUTAssertion::setConfirmMessage(JUTAssertion::getSDevice(), const_cast<char*>(__FILE__), __LINE__, COND, #COND)
#endif
#define JUT_WARN(LINE, ...) \
+1 -3
View File
@@ -103,9 +103,7 @@ public:
return --index < 0 ? index = mMaxLines - 1 : index;
}
int nextIndex(int index) const {
return ++index >= mMaxLines ? 0 : index;
}
int nextIndex(int index) const { return (++index >= mMaxLines) ? index = 0 : index; }
void scrollToLastLine() { scroll(mMaxLines); }
void scrollToFirstLine() { scroll(-mMaxLines); }
+3 -3
View File
@@ -2,7 +2,7 @@
#define JUTFONT_H
#include "JSystem/JUtility/TColor.h"
#include <string>
#include <cstring>
#include "dusk/endian.h"
/**
@@ -124,9 +124,9 @@ public:
return drawString_size_scale(posX, posY, getWidth(), getHeight(), str, len, visible);
}
void drawString_scale(f32 posX, f32 posY, f32 width, f32 height, const char* str,
f32 drawString_scale(f32 posX, f32 posY, f32 width, f32 height, const char* str,
bool visible) {
drawString_size_scale(posX, posY, width, height, str, strlen(str), visible);
return (int)drawString_size_scale(posX, posY, width, height, str, strlen(str), visible);
}
int getWidth(int i_no) const {
+3 -1
View File
@@ -286,6 +286,8 @@ struct JUTGamePadLongPress {
/* 0x50 */ s32 field_0x50;
};
inline void JUTReadGamePad() { JUTGamePad::read(); }
inline u32 JUTReadGamePad() {
return JUTGamePad::read();
}
#endif /* JUTGAMEPAD_H */
+5 -1
View File
@@ -24,7 +24,11 @@ public:
return mGpStatus[2] == false;
}
void save() { GXSaveCPUFifo(this->mFifo); }
void save() {
#if !PLATFORM_SHIELD
GXSaveCPUFifo(this->mFifo);
#endif
}
static JUTGraphFifo* sCurrentFifo;
static bool mGpStatus[5];
+1
View File
@@ -2,6 +2,7 @@
#define JUTNAMETAB_H
#include <dolphin/types.h>
#include "dusk/endian.h"
/**
* @ingroup jsystem-jutility
+1 -1
View File
@@ -75,7 +75,7 @@ private:
static JUTXfb* sManager;
private:
/* 0x00 */ void* mBuffer[3];
/* 0x00 */ u8* mBuffer[3];
/* 0x0C */ bool mXfbAllocated[3];
/* 0x10 */ s32 mBufferNum;
/* 0x14 */ s16 mDrawingXfbIndex;