mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-08 20:24:47 -04:00
Merge remote-tracking branch 'origin/main' into 26-02-27-pjb-dev-2
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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];
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef J3DUFUR_H
|
||||
#define J3DUFUR_H
|
||||
|
||||
// NONMATCHING
|
||||
|
||||
#endif /* J3DUFUR_H */
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef J3DUMOTION_H
|
||||
#define J3DUMOTION_H
|
||||
|
||||
// NONMATCHING
|
||||
|
||||
#endif /* J3DUMOTION_H */
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef J3DUSHADOW_H
|
||||
#define J3DUSHADOW_H
|
||||
|
||||
// NONMATCHING
|
||||
|
||||
#endif /* J3DUSHADOW_H */
|
||||
@@ -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);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
|
||||
class JAISeqMgr;
|
||||
class JAISoundChild;
|
||||
struct JAISoundChild;
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jaudio
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "JSystem/JAudio2/JASWaveInfo.h"
|
||||
#include <dolphin/os.h>
|
||||
|
||||
class JASDSPChannel;
|
||||
struct JASDSPChannel;
|
||||
|
||||
namespace JASDsp {
|
||||
struct TChannel;
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
};
|
||||
};
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
class JKRHeap;
|
||||
class JASWaveBank;
|
||||
class JASBasicWaveBank;
|
||||
class JASSimpleWaveBank;
|
||||
struct JASBasicWaveBank;
|
||||
struct JASSimpleWaveBank;
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jaudio
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef JAUAUDIENCE_H
|
||||
#define JAUAUDIENCE_H
|
||||
|
||||
// NONMATCHING
|
||||
|
||||
#endif /* JAUAUDIENCE_H */
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef JAUSOUNDOBJECT_H
|
||||
#define JAUSOUNDOBJECT_H
|
||||
|
||||
// NONMATCHING
|
||||
|
||||
#endif /* JAUSOUNDOBJECT_H */
|
||||
@@ -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; }
|
||||
|
||||
@@ -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_; }
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <iterator>
|
||||
#include <functional>
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
|
||||
namespace JGadget {
|
||||
namespace search {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define JGADGET_STD_STREAMBUF_H
|
||||
|
||||
#include <dolphin/types.h>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
|
||||
namespace JGadget {
|
||||
template <typename T>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -18,37 +18,24 @@ public:
|
||||
s32 write(const void*, s32);
|
||||
void write(const char*);
|
||||
|
||||
#ifdef TARGET_PC
|
||||
JSUOutputStream& operator<<(uintptr_t param_0) {
|
||||
write(¶m_0, sizeof(uintptr_t));
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
JSUOutputStream& operator<<(u32 param_0) {
|
||||
write(¶m_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(¶m_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(¶m_0, sizeof(s16));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(u16 param_0) {
|
||||
write(¶m_0, sizeof(u16));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(u8 param_0) {
|
||||
write(¶m_0, sizeof(u8));
|
||||
return *this;
|
||||
}
|
||||
#undef JSU_OUTPUTSTREAM_OPERATOR
|
||||
|
||||
JSUOutputStream& operator<<(const char* param_0) {
|
||||
write(param_0);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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, ...) \
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -286,6 +286,8 @@ struct JUTGamePadLongPress {
|
||||
/* 0x50 */ s32 field_0x50;
|
||||
};
|
||||
|
||||
inline void JUTReadGamePad() { JUTGamePad::read(); }
|
||||
inline u32 JUTReadGamePad() {
|
||||
return JUTGamePad::read();
|
||||
}
|
||||
|
||||
#endif /* JUTGAMEPAD_H */
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JUTNAMETAB_H
|
||||
|
||||
#include <dolphin/types.h>
|
||||
#include "dusk/endian.h"
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jutility
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
#ifndef NDEVEXI2A_DEBUGGERDRIVER_H
|
||||
#define NDEVEXI2A_DEBUGGERDRIVER_H
|
||||
|
||||
#include <dolphin/os.h>
|
||||
#include "types.h"
|
||||
|
||||
typedef void (*MtrCallback)(s32, OSContext*);
|
||||
typedef void (*IntrCallback)(s16, OSContext*);
|
||||
|
||||
#include <NdevExi2A/DebuggerDriver.h>
|
||||
|
||||
static u32 ODEMUGetSize(u32 mail);
|
||||
|
||||
static void __DBMtrHandler(s32 param_0, OSContext* ctx);
|
||||
|
||||
static void __DBIntrHandler(s16 param_0, OSContext* ctx);
|
||||
|
||||
u8 __DBReadUSB_CSR();
|
||||
|
||||
void __DBReadMailbox(u32* out);
|
||||
|
||||
void __DBCheckMailBox(void);
|
||||
|
||||
BOOL __DBWriteMailbox(u32 val);
|
||||
|
||||
BOOL __DBRead(u32 param_0, void* dst, u32 count);
|
||||
|
||||
BOOL __DBWrite(u32 param_0, void* src, u32 count);
|
||||
|
||||
void DBInitComm(u8** a, MtrCallback callback);
|
||||
|
||||
void DBInitInterrupts(void);
|
||||
|
||||
BOOL ODEMUIsValidMail(u32 mail);
|
||||
|
||||
u32 DBQueryData(void);
|
||||
|
||||
u32 ODEMUGetPage(u32 v);
|
||||
|
||||
u32 ODEMUGetPc2NngcOffset(u32 v);
|
||||
|
||||
BOOL DBRead(u32* buffer, s32 count);
|
||||
|
||||
void __DBWaitForSendMail();
|
||||
|
||||
u32 ODEMUGenMailData(u32 v, u32 size);
|
||||
|
||||
BOOL DBWrite(void* src, u32 size);
|
||||
|
||||
void DBOpen(void);
|
||||
|
||||
void DBClose(void);
|
||||
|
||||
#endif /* NDEVEXI2A_DEBUGGERDRIVER_H */
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef NDEVEXI2A_EXI2_H
|
||||
#define NDEVEXI2A_EXI2_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
BOOL __EXI2Select();
|
||||
|
||||
BOOL __EXI2Deselect();
|
||||
|
||||
BOOL __EXI2Sync();
|
||||
|
||||
BOOL __EXI2Imm(u32* param_0, int width, int param_2);
|
||||
|
||||
void __DBEXIInit();
|
||||
|
||||
BOOL __DBEXIReadReg(u32 param_0, void* dst, u32 param_2);
|
||||
|
||||
BOOL __DBEXIWriteReg(u32 param_0, void* src, u32 width);
|
||||
|
||||
BOOL __DBEXIReadRam(u32 param_0, void* dst, int count);
|
||||
|
||||
BOOL __DBEXIWriteRam(u32 param_0, void* src, int count);
|
||||
|
||||
u32 __EXISwap32(u32 v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* NDEVEXI2A_EXI2_H */
|
||||
@@ -2,33 +2,8 @@
|
||||
#define C_ANGLE_H
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "angle_utils.h"
|
||||
|
||||
#define ADD_VAR(x, y) ((x) += (y))
|
||||
#define SUB_VAR(x, y) ((x) -= (y))
|
||||
#define MULT_VAR(x, y) ((x) *= (y))
|
||||
|
||||
#define ADD_VAR_CAST(x, y, t) ((x) += (t)(y))
|
||||
#define SUB_VAR_CAST(x, y, t) ((x) -= (t)(y))
|
||||
#define MULT_VAR_CAST(x, y, t) ((x) *= (t)(y))
|
||||
|
||||
#define ADD_ANGLE(x, y) ADD_VAR_CAST(x, y, s16)
|
||||
#define SUB_ANGLE(x, y) SUB_VAR_CAST(x, y, s16)
|
||||
#define MULT_ANGLE(x, y) MULT_VAR_CAST(x, y, s16)
|
||||
|
||||
// There are some angles that weren't sign-extended until the shield version
|
||||
#if !PLATFORM_SHIELD
|
||||
#define ADD_ANGLE_2 ADD_VAR
|
||||
#define SUB_ANGLE_2 SUB_VAR
|
||||
#define MULT_ANGLE_2 MULT_VAR
|
||||
|
||||
#define ADD_S8_2 ADD_VAR
|
||||
#else
|
||||
#define ADD_ANGLE_2 ADD_ANGLE
|
||||
#define SUB_ANGLE_2 SUB_ANGLE
|
||||
#define MULT_ANGLE_2 MULT_ANGLE
|
||||
|
||||
#define ADD_S8_2(x, y) ADD_VAR_CAST(x, y, s8)
|
||||
#endif
|
||||
|
||||
#define DEG2S_CONSTANT (0x8000 / 180.0f)
|
||||
#define S2DEG_CONSTANT (180.0f / 0x8000)
|
||||
|
||||
@@ -62,8 +62,8 @@ enum cCcD_ObjAtType {
|
||||
/* 0x10000000 */ AT_TYPE_10000000 = (1 << 28),
|
||||
/* 0x10000000 */ AT_TYPE_20000000 = (1 << 29),
|
||||
/* 0x40000000 */ AT_TYPE_WOLF_CUT_TURN = (1 << 30),
|
||||
/* 0x80000000 */ AT_TYPE_WOLF_ATTACK = (1 << 31),
|
||||
/* 0xD8000000 */ AT_TYPE_UNK = 0xD8000000
|
||||
/* 0x80000000 */ AT_TYPE_WOLF_ATTACK = (1u << 31),
|
||||
/* 0xD8000000 */ AT_TYPE_UNK = 0xD8000000u
|
||||
};
|
||||
|
||||
struct cCcD_SrcTriAttr {
|
||||
@@ -120,16 +120,16 @@ public:
|
||||
STATIC_ASSERT(0x40 == sizeof(cCcD_DivideArea));
|
||||
|
||||
struct cCcD_SrcObjCommonBase {
|
||||
/* 0x0 */ s32 mSPrm;
|
||||
/* 0x0 */ u32 mSPrm;
|
||||
};
|
||||
|
||||
struct cCcD_SrcObjTg {
|
||||
/* 0x0 */ s32 mType;
|
||||
/* 0x0 */ u32 mType;
|
||||
/* 0x4 */ cCcD_SrcObjCommonBase mBase;
|
||||
}; // Size: 0x8
|
||||
|
||||
struct cCcD_SrcObjAt {
|
||||
/* 0x0 */ s32 mType;
|
||||
/* 0x0 */ u32 mType;
|
||||
/* 0x4 */ u8 mAtp;
|
||||
/* 0x8 */ cCcD_SrcObjCommonBase mBase;
|
||||
}; // Size: 0xC
|
||||
|
||||
@@ -59,15 +59,13 @@ inline T cLib_minMaxLimit(T val, T min, T max) {
|
||||
template <typename T>
|
||||
inline T cLib_maxLimit(T val, T max) {
|
||||
T ret;
|
||||
T var_r30;
|
||||
|
||||
if (val > max) {
|
||||
var_r30 = max;
|
||||
ret = max;
|
||||
} else {
|
||||
var_r30 = val;
|
||||
ret = val;
|
||||
}
|
||||
|
||||
ret = var_r30;
|
||||
return (T)ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define C_M2D_H
|
||||
|
||||
|
||||
struct cM2dGCir;
|
||||
class cM2dGCir;
|
||||
|
||||
void cM2d_CrossCirLin(cM2dGCir&, float, float, float, float, float*, float*);
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef METROTRK_PORTABLE_STRING_TRK_H
|
||||
#define METROTRK_PORTABLE_STRING_TRK_H
|
||||
|
||||
int TRK_strlen(const char* str);
|
||||
|
||||
#endif /* METROTRK_PORTABLE_STRING_TRK_H */
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef Z2AUDIOCS_SPKDATA_H
|
||||
#define Z2AUDIOCS_SPKDATA_H
|
||||
|
||||
#include "Z2AudioCS/SpkTable.h"
|
||||
#include "Z2AudioCS/SpkWave.h"
|
||||
#include "JSystem/JKernel/JKRArchive.h"
|
||||
|
||||
class SpkData {
|
||||
public:
|
||||
SpkData(JKRArchive*);
|
||||
void loadTable(u16 chan);
|
||||
void loadWave(u16 chan);
|
||||
BOOL isValid(void) const;
|
||||
|
||||
inline SpkTable& getTableMgr(void) { return mTableMgr; }
|
||||
inline SpkWave& getWaveMgr(void) { return mWaveMgr; }
|
||||
|
||||
/* 0x00 */ SpkTable mTableMgr;
|
||||
/* 0x10 */ SpkWave mWaveMgr;
|
||||
/* 0x14 */ JKRArchive* mResArc;
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKDATA_H */
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef Z2AUDIOCS_SPKMIXINGBUFFER_H
|
||||
#define Z2AUDIOCS_SPKMIXINGBUFFER_H
|
||||
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
|
||||
static const s32 cSamplesPerAudioPacket = 40;
|
||||
|
||||
class SpkMixingBuffer {
|
||||
public:
|
||||
SpkMixingBuffer(JKRHeap* heap);
|
||||
void mix(s32 chan, s16* src, s32 len, f32 weight, s32 offset);
|
||||
s16* getSamples(s32 chan) const;
|
||||
bool update(s32 chan);
|
||||
void bzeroBuffer(s32 chan);
|
||||
|
||||
private:
|
||||
/* 0x00 */ s16* mBuffer[4];
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKMIXINGBUFFER_H */
|
||||
@@ -0,0 +1,119 @@
|
||||
#ifndef Z2AUDIOCS_SPKSOUND_H
|
||||
#define Z2AUDIOCS_SPKSOUND_H
|
||||
|
||||
#include "Z2AudioCS/SpkTable.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "JSystem/JAudio2/JASHeapCtrl.h"
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include <revolution/types.h>
|
||||
|
||||
class SpkSound;
|
||||
|
||||
class SpkSoundHandle {
|
||||
public:
|
||||
SpkSoundHandle(void) : mSound(NULL) {}
|
||||
~SpkSoundHandle(void) {
|
||||
releaseSound();
|
||||
}
|
||||
void releaseSound(void);
|
||||
|
||||
inline bool isSoundAttached() const {
|
||||
return mSound != NULL;
|
||||
}
|
||||
inline SpkSound* operator->(void) const {
|
||||
JUT_ASSERT(62, mSound != NULL);
|
||||
return mSound;
|
||||
}
|
||||
inline operator bool() const {
|
||||
return isSoundAttached();
|
||||
}
|
||||
|
||||
/* 0x00 */ SpkSound* mSound;
|
||||
};
|
||||
|
||||
class SpkSoundVolume {
|
||||
public:
|
||||
SpkSoundVolume(void);
|
||||
void setRelease(s32);
|
||||
void setFadeOut(s32);
|
||||
f32 calc(bool&);
|
||||
void setTableVolume(f32);
|
||||
|
||||
/* 0x00 */ f32 field_0x00;
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0c;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 mTableVolume;
|
||||
};
|
||||
|
||||
class SpkSound : public JASPoolAllocObject<SpkSound>, public JSULink<SpkSound> {
|
||||
public:
|
||||
SpkSound(void);
|
||||
~SpkSound(void);
|
||||
void update(f32 vol);
|
||||
void stop(s32 msec);
|
||||
void startRelease(void);
|
||||
bool isHandleAttached(void) const;
|
||||
void attachHandle(SpkSoundHandle* handle);
|
||||
void releaseHandle(void);
|
||||
bool start(s32 chan, s32 soundNum);
|
||||
void kill(void);
|
||||
bool isStopping(void) const;
|
||||
bool isDead(void) const;
|
||||
bool isLocked(void) const;
|
||||
void unlock(void);
|
||||
s32 getLifeTime(void);
|
||||
void setLifeTime(s32 lifeTime);
|
||||
void updateLifeTime(void);
|
||||
s32 convertMsecToFrames(s32 msec);
|
||||
bool isLoopWave(void);
|
||||
bool setWaveData(s32 soundNum);
|
||||
|
||||
inline s32 getPriority(void) const { return mPriority; }
|
||||
inline void setPriority(s32 priority) { mPriority = priority; }
|
||||
inline s32 getSoundNum(void) const { return mSoundNum; }
|
||||
inline void setSoundNum(s32 soundNum) { mSoundNum = soundNum; }
|
||||
|
||||
/* 0x10 */ SpkSoundHandle* mHandle;
|
||||
/* 0x14 */ s32 mSoundNum;
|
||||
/* 0x18 */ s16* mWaveData;
|
||||
/* 0x1C */ s32 mCurPos;
|
||||
/* 0x20 */ u32 field_0x20;
|
||||
/* 0x24 */ s32 mPriority;
|
||||
/* 0x28 */ u32 field_0x28;
|
||||
/* 0x2C */ s32 mWaveSize;
|
||||
/* 0x30 */ s32 mWaveLoopStart;
|
||||
/* 0x34 */ s32 mWaveLoopEnd;
|
||||
/* 0x38 */ s32 mState;
|
||||
/* 0x3C */ s32 mLifeTime;
|
||||
/* 0x40 */ SpkSoundVolume mVolume;
|
||||
};
|
||||
|
||||
class SpkSoundHolder : JASGlobalInstance<SpkSoundHolder> {
|
||||
public:
|
||||
SpkSoundHolder(void);
|
||||
bool startSound(s32 chan, s32 soundNum, SpkSoundHandle* handle);
|
||||
bool startLevelSound(s32 chan, s32 soundNum, SpkSoundHandle* handle);
|
||||
void stopAll(s32 chan, s32 msec);
|
||||
bool update(s32 chan);
|
||||
bool updateEachSound(s32 chan);
|
||||
void freeDeadSound(s32 chan);
|
||||
void appendSound(s32 chan, SpkSound* sound);
|
||||
void framework(void);
|
||||
|
||||
inline f32 getMasterVolume(void) const { return mMasterVolume; }
|
||||
inline void setMasterVolume(f32 vol) { mMasterVolume = vol; }
|
||||
inline s32 getConfigVolume(void) const { return mConfigVolume; }
|
||||
inline void setConfigVolume(s32 vol) { mConfigVolume = vol; }
|
||||
inline f32 getConfigVolumeF32(void) const { return (f32)mConfigVolume / 15.0f; }
|
||||
|
||||
/* 0x00 */ JSUList<SpkSound> mSoundList[WPAD_MAX_CONTROLLERS];
|
||||
/* 0x30 */ f32 mSoundVolumes[WPAD_MAX_CONTROLLERS];
|
||||
/* 0x40 */ f32 mMasterVolume;
|
||||
/* 0x44 */ s32 mConfigVolume;
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKSOUND_H */
|
||||
@@ -0,0 +1,47 @@
|
||||
#ifndef Z2AUDIOCS_SPKSPEAKERCTRL_H
|
||||
#define Z2AUDIOCS_SPKSPEAKERCTRL_H
|
||||
|
||||
#include "Z2AudioCS/SpkMixingBuffer.h"
|
||||
#include <revolution/os.h>
|
||||
#include <revolution/types.h>
|
||||
#include <revolution/wenc.h>
|
||||
|
||||
struct SpeakerInfo {
|
||||
/* 0x00 */ bool mIsConnected;
|
||||
/* 0x01 */ bool mIsPlaying;
|
||||
/* 0x02 */ WENCInfo mEncInfo;
|
||||
/* 0x22 */ bool field_0x22;
|
||||
/* 0x23 */ bool mIsMuted;
|
||||
#if VERSION != VERSION_WII_USA_R0
|
||||
/* 0x24 */ s32 mState;
|
||||
#endif
|
||||
/* 0x28 */ s32 mRadioSensitivityTimer;
|
||||
/* 0x2C */ s32 mExtensionTimer;
|
||||
/* 0x30 */ u8 mVolume;
|
||||
};
|
||||
|
||||
class SpkSpeakerCtrl {
|
||||
public:
|
||||
static void setMixingBuffer(SpkMixingBuffer*);
|
||||
static void setup(void);
|
||||
static void connect(s32 chan);
|
||||
static void disconnect(s32 chan);
|
||||
static void setSpeakerOn(s32 chan);
|
||||
static void setSpeakerOnCallback(s32 chan, s32 param_1);
|
||||
static void setSpeakerPlay(s32 chan);
|
||||
static void startPlayCallback(s32 chan, s32 param_1);
|
||||
static void setSpeakerOff(s32 chan);
|
||||
static void retryConnection(s32 chan);
|
||||
static void framework(void);
|
||||
static void updateSpeaker(OSAlarm* alarm, OSContext* ctx);
|
||||
static bool isEnable(s32 chan);
|
||||
static void extensionProcess(s32 chan, s32 param_1);
|
||||
static bool updateExtensionProcess(s32 chan);
|
||||
static bool isSubmitPlayByExtensionConnect(s32 chan);
|
||||
static bool checkRadioSensitivity(s32 chan);
|
||||
static bool isSubmitPlayByRadioSensitivity(s32 chan);
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKSPEAKERCTRL_H */
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef Z2AUDIOCS_SPKSYSTEM_H
|
||||
#define Z2AUDIOCS_SPKSYSTEM_H
|
||||
|
||||
#include "Z2AudioCS/SpkData.h"
|
||||
#include "Z2AudioCS/SpkMixingBuffer.h"
|
||||
#include "Z2AudioCS/SpkSound.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "JSystem/JKernel/JKRArchive.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include <revolution/types.h>
|
||||
|
||||
class SpkSystem : protected JASGlobalInstance<SpkSystem> {
|
||||
public:
|
||||
SpkSystem(JKRHeap* heap);
|
||||
void setResource(JKRArchive* resArc, u16, u16);
|
||||
void framework(void);
|
||||
void startSound(s32 chan, s32 param_1, SpkSoundHandle* handle);
|
||||
void startLevelSound(s32 chan, s32 param_1, SpkSoundHandle* handle);
|
||||
void stopAll(s32 chan, s32 msec);
|
||||
void setMasterVolume(f32 vol);
|
||||
f32 getMasterVolume(void);
|
||||
void setConfigVolume(s32 vol);
|
||||
static void newSoundMemPool(s32 numOfSound);
|
||||
static void connect(s32 chan);
|
||||
static void disconnect(s32 chan);
|
||||
static void extensionProcess(s32, s32);
|
||||
|
||||
inline SpkData* getData(void) const { return mData; }
|
||||
inline SpkMixingBuffer* getMixingBuffer(void) const { return mMixingBuffer; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ JKRHeap* mHeap;
|
||||
/* 0x04 */ SpkData* mData;
|
||||
/* 0x08 */ SpkMixingBuffer* mMixingBuffer;
|
||||
/* 0x0C */ SpkSoundHolder* mSoundHolder;
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKSYSTEM_H */
|
||||
@@ -0,0 +1,41 @@
|
||||
#ifndef Z2AUDIOCS_SPKTABLE_H
|
||||
#define Z2AUDIOCS_SPKTABLE_H
|
||||
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include <revolution/types.h>
|
||||
#include <revolution/wpad.h>
|
||||
|
||||
struct SpkTableParams {
|
||||
/* 0x00 */ u16 mWaveNum;
|
||||
/* 0x02 */ u8 field_0x02;
|
||||
/* 0x03 */ u8 mVolume;
|
||||
/* 0x04 */ u16 mMsec;
|
||||
/* 0x06 */ u8 pad_0x06[2];
|
||||
};
|
||||
|
||||
class SpkTable {
|
||||
public:
|
||||
SpkTable(void);
|
||||
void setResource(void* res);
|
||||
|
||||
inline s32 getName(s32 num) {
|
||||
JUT_ASSERT(0x35, num >= 0);
|
||||
JUT_ASSERT(0x36, num < mNumOfSound);
|
||||
return *(mDataOffsets + num);
|
||||
}
|
||||
inline s32 getNumOfSound() const { return mNumOfSound; }
|
||||
inline bool isValid(void) const { return mIsInitialized; }
|
||||
inline SpkTableParams* getParams(s32 num) {
|
||||
JUT_ASSERT(46, num >= 0);
|
||||
JUT_ASSERT(47, num < mNumOfSound);
|
||||
return (SpkTableParams*)mEntryOffset + num;
|
||||
}
|
||||
|
||||
// private:
|
||||
/* 0x00 */ bool mIsInitialized;
|
||||
/* 0x04 */ s32 mNumOfSound;
|
||||
/* 0x08 */ u32 mEntryOffset;
|
||||
/* 0x0C */ s32* mDataOffsets;
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKTABLE_H */
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef Z2AUDIOCS_SPKWAVE_H
|
||||
#define Z2AUDIOCS_SPKWAVE_H
|
||||
|
||||
#include <revolution/types.h>
|
||||
|
||||
struct WaveData {
|
||||
s32 size;
|
||||
u32 loopStartPos;
|
||||
u32 loopEndPos;
|
||||
s16 wave[0];
|
||||
};
|
||||
|
||||
class SpkWave {
|
||||
public:
|
||||
SpkWave(void);
|
||||
void setResource(void*);
|
||||
s32 getNumOfWaves(void) const;
|
||||
s32 getWaveSize(s32 num) const;
|
||||
u32 getLoopStartPos(s32 num) const;
|
||||
u32 getLoopEndPos(s32 num) const;
|
||||
s16* getWave(s32 num) const;
|
||||
WaveData* getWaveData(s32 num) const;
|
||||
|
||||
inline bool isValid(void) const { return mWaveData != NULL; }
|
||||
inline const void* getResource(void) const { return mWaveData; }
|
||||
inline void* getResource(void) { return mWaveData; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ void* mWaveData;
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_SPKWAVE_H */
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef Z2AUDIOCS_H
|
||||
#define Z2AUDIOCS_H
|
||||
|
||||
#include "Z2AudioCS/SpkTable.h"
|
||||
#include "Z2AudioCS/SpkSound.h"
|
||||
#include <dolphin/types.h>
|
||||
|
||||
class JKRHeap;
|
||||
class JKRArchive;
|
||||
|
||||
class Z2AudioCS {
|
||||
public:
|
||||
static void newSpkSoundMemPool();
|
||||
static int init(JKRHeap* heap, JKRArchive* res, s32 param_2, s32 param_3);
|
||||
static void update();
|
||||
static void connect(s32 chan);
|
||||
static void disconnect(s32 chan);
|
||||
static void extensionProcess(s32 chan, s32 param_1);
|
||||
static SpkSoundHandle* getHandleSoundID(s32 soundNum);
|
||||
static SpkSoundHandle* start(s32 id, s32 chan);
|
||||
static SpkSoundHandle* startLevel(s32 id, s32 chan);
|
||||
static s32 getName(s32 num);
|
||||
static s32 getNumOfSound(void);
|
||||
static void stopAll(s32 chan, s32 msec);
|
||||
static void stop(s32 chan);
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_H */
|
||||
@@ -1,22 +0,0 @@
|
||||
#ifndef Z2AUDIOCS_H
|
||||
#define Z2AUDIOCS_H
|
||||
|
||||
#include <dolphin/types.h>
|
||||
|
||||
class JKRHeap;
|
||||
class JKRArchive;
|
||||
|
||||
class Z2AudioCS {
|
||||
public:
|
||||
static void newSpkSoundMemPool();
|
||||
static int init(JKRHeap*, JKRArchive*, s32, s32);
|
||||
static void update();
|
||||
static void connect(s32);
|
||||
static void disconnect(s32);
|
||||
static void extensionProcess(s32, s32);
|
||||
u32 getHandleSoundID(s32);
|
||||
static void start(s32, s32);
|
||||
static int startLevel(s32, s32);
|
||||
};
|
||||
|
||||
#endif /* Z2AUDIOCS_H */
|
||||
@@ -0,0 +1,88 @@
|
||||
#ifndef _ANGLE_UTILS_H_
|
||||
#define _ANGLE_UTILS_H_
|
||||
|
||||
#include "global.h"
|
||||
|
||||
#define VAR_ADD(x, y) ((x) += (y))
|
||||
#define VAR_SUB(x, y) ((x) -= (y))
|
||||
#define VAR_MULT(x, y) ((x) *= (y))
|
||||
|
||||
#define VAR_ADD_CAST(x, y, t) ((x) += (t)(y))
|
||||
#define VAR_SUB_CAST(x, y, t) ((x) -= (t)(y))
|
||||
#define VAR_MULT_CAST(x, y, t) ((x) *= (t)(y))
|
||||
|
||||
#define S8_ADD(x, y) VAR_ADD_CAST(x, y, s8)
|
||||
#define U8_ADD(x, y) VAR_ADD_CAST(x, y, u8)
|
||||
#define S16_ADD(x, y) VAR_ADD_CAST(x, y, s16)
|
||||
#define U16_ADD(x, y) VAR_ADD_CAST(x, y, u16)
|
||||
#define S32_ADD(x, y) VAR_ADD_CAST(x, y, s32)
|
||||
#define U32_ADD(x, y) VAR_ADD_CAST(x, y, u32)
|
||||
|
||||
#define S8_SUB(x, y) VAR_SUB_CAST(x, y, s8)
|
||||
#define U8_SUB(x, y) VAR_SUB_CAST(x, y, u8)
|
||||
#define S16_SUB(x, y) VAR_SUB_CAST(x, y, s16)
|
||||
#define U16_SUB(x, y) VAR_SUB_CAST(x, y, u16)
|
||||
#define S32_SUB(x, y) VAR_SUB_CAST(x, y, s32)
|
||||
#define U32_SUB(x, y) VAR_SUB_CAST(x, y, u32)
|
||||
|
||||
#define S8_MULT(x, y) VAR_MULT_CAST(x, y, s8)
|
||||
#define U8_MULT(x, y) VAR_MULT_CAST(x, y, u8)
|
||||
#define S16_MULT(x, y) VAR_MULT_CAST(x, y, s16)
|
||||
#define U16_MULT(x, y) VAR_MULT_CAST(x, y, u16)
|
||||
#define S32_MULT(x, y) VAR_MULT_CAST(x, y, s32)
|
||||
#define U32_MULT(x, y) VAR_MULT_CAST(x, y, u32)
|
||||
|
||||
#define ANGLE_ADD S16_ADD
|
||||
#define ANGLE_SUB S16_SUB
|
||||
#define ANGLE_MULT S16_MULT
|
||||
|
||||
// There are some angles that weren't sign-extended until the shield version
|
||||
#if !PLATFORM_SHIELD
|
||||
#define S8_ADD_2 VAR_ADD
|
||||
#define U8_ADD_2 VAR_ADD
|
||||
#define S16_ADD_2 VAR_ADD
|
||||
#define U16_ADD_2 VAR_ADD
|
||||
#define S32_ADD_2 VAR_ADD
|
||||
#define U32_ADD_2 VAR_ADD
|
||||
|
||||
#define S8_SUB_2 VAR_SUB
|
||||
#define U8_SUB_2 VAR_SUB
|
||||
#define S16_SUB_2 VAR_SUB
|
||||
#define U16_SUB_2 VAR_SUB
|
||||
#define S32_SUB_2 VAR_SUB
|
||||
#define U32_SUB_2 VAR_SUB
|
||||
|
||||
#define S8_MULT_2 VAR_MULT
|
||||
#define U8_MULT_2 VAR_MULT
|
||||
#define S16_MULT_2 VAR_MULT
|
||||
#define U16_MULT_2 VAR_MULT
|
||||
#define S32_MULT_2 VAR_MULT
|
||||
#define U32_MULT_2 VAR_MULT
|
||||
#else
|
||||
#define S8_ADD_2 S8_ADD
|
||||
#define U8_ADD_2 U8_ADD
|
||||
#define S16_ADD_2 S16_ADD
|
||||
#define U16_ADD_2 U16_ADD
|
||||
#define S32_ADD_2 S32_ADD
|
||||
#define U32_ADD_2 U32_ADD
|
||||
|
||||
#define S8_SUB_2 S8_SUB
|
||||
#define U8_SUB_2 U8_SUB
|
||||
#define S16_SUB_2 S16_SUB
|
||||
#define U16_SUB_2 U16_SUB
|
||||
#define S32_SUB_2 S32_SUB
|
||||
#define U32_SUB_2 U32_SUB
|
||||
|
||||
#define S8_MULT_2 S8_MULT
|
||||
#define U8_MULT_2 U8_MULT
|
||||
#define S16_MULT_2 S16_MULT
|
||||
#define U16_MULT_2 U16_MULT
|
||||
#define S32_MULT_2 S32_MULT
|
||||
#define U32_MULT_2 U32_MULT
|
||||
#endif
|
||||
|
||||
#define ANGLE_ADD_2 S16_ADD_2
|
||||
#define ANGLE_SUB_2 S16_SUB_2
|
||||
#define ANGLE_MULT_2 S16_MULT_2
|
||||
|
||||
#endif // !_ANGLE_UTILS_H_
|
||||
+4465
-4463
File diff suppressed because it is too large
Load Diff
@@ -34,7 +34,7 @@ public:
|
||||
/* 0x0570 */ u8 prm0;
|
||||
/* 0x0571 */ u8 prm1;
|
||||
/* 0x0572 */ u8 prm2;
|
||||
/* 0x0574 */ ga_s ga_s[256];
|
||||
/* 0x0574 */ struct ga_s ga_s[256];
|
||||
/* 0x4D74 */ int ga_num;
|
||||
/* 0x4D78 */ u8 HIOInit;
|
||||
/* 0x4D79 */ u8 initialized;
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
void CheckHit();
|
||||
void WaitAction();
|
||||
void HalfBreakAction();
|
||||
bool VibAction();
|
||||
u8 VibAction();
|
||||
void DummyAction();
|
||||
void RealAction();
|
||||
void Action();
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_msg_flow.h"
|
||||
|
||||
class dPath;
|
||||
struct dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
|
||||
+60
-60
@@ -21,75 +21,75 @@ class e_rd_class {
|
||||
public:
|
||||
e_rd_class();
|
||||
|
||||
/* 0x0000 */ fopEn_enemy_c actor;
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x05B4 */ s16 mMode;
|
||||
/* 0x05B6 */ u8 field_0x5b6;
|
||||
/* 0x05B7 */ u8 field_0x5b7;
|
||||
/* 0x05B8 */ u8 field_0x5b8;
|
||||
/* 0x0000 */ fopEn_enemy_c enemy;
|
||||
/* 0x05AC */ request_of_phase_process_class phase;
|
||||
/* 0x05B4 */ s16 mode;
|
||||
/* 0x05B6 */ u8 arg0;
|
||||
/* 0x05B7 */ u8 arg1;
|
||||
/* 0x05B8 */ u8 arg2;
|
||||
/* 0x05B9 */ u8 field_0x5b9;
|
||||
/* 0x05BA */ u8 field_0x5ba;
|
||||
/* 0x05BB */ u8 field_0x5bb;
|
||||
/* 0x05BC */ u8 field_0x5bc;
|
||||
/* 0x05BC */ u8 weapon_type;
|
||||
/* 0x05BD */ s8 field_0x5bd;
|
||||
/* 0x05C0 */ cXyz field_0x5c0;
|
||||
/* 0x05CC */ s16 field_0x5cc;
|
||||
/* 0x05D0 */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05D4 */ Z2CreatureEnemy mSound;
|
||||
/* 0x0678 */ char* mResName;
|
||||
/* 0x067C */ int mAnmID;
|
||||
/* 0x05CC */ s16 target_ya;
|
||||
/* 0x05D0 */ mDoExt_McaMorfSO* anm_p;
|
||||
/* 0x05D4 */ Z2CreatureEnemy sound;
|
||||
/* 0x0678 */ char* resName;
|
||||
/* 0x067C */ int anm;
|
||||
/* 0x0680 */ int field_0x680;
|
||||
/* 0x0684 */ dJntCol_c mJntCol;
|
||||
/* 0x0694 */ J3DModel* field_0x694;
|
||||
/* 0x0698 */ mDoExt_McaMorfSO* mpMorfBowAnm;
|
||||
/* 0x0694 */ J3DModel* arrow;
|
||||
/* 0x0698 */ mDoExt_McaMorfSO* bow_anm;
|
||||
/* 0x069C */ mDoExt_McaMorf* mpMorfHornAnm;
|
||||
/* 0x06A0 */ s8 field_0x6a0;
|
||||
/* 0x06A4 */ cXyz field_0x6a4;
|
||||
/* 0x06B0 */ cXyz field_0x6b0;
|
||||
/* 0x06BC */ csXyz field_0x6bc;
|
||||
/* 0x06C2 */ s8 field_0x6c2;
|
||||
/* 0x06C2 */ s8 run_flag;
|
||||
/* 0x06C3 */ u8 field_0x6c3;
|
||||
/* 0x06C4 */ J3DModel* mpEyeModels[2];
|
||||
/* 0x06C4 */ J3DModel* eye_model[2];
|
||||
/* 0x06CC */ f32 field_0x6cc;
|
||||
/* 0x06D0 */ f32 field_0x6d0;
|
||||
/* 0x06D4 */ J3DModel* mpBossArmorParts[14];
|
||||
/* 0x06D4 */ J3DModel* armor_boss_part[14];
|
||||
/* 0x070C */ s8 field_0x70c[14];
|
||||
/* 0x071C */ cXyz field_0x71c[14];
|
||||
/* 0x07C4 */ cXyz field_0x7c4[14];
|
||||
/* 0x086C */ csXyz field_0x86c[14];
|
||||
/* 0x08C0 */ u32 field_0x8c0[14][3];
|
||||
/* 0x08C0 */ u32 armor_break_eff[14][3];
|
||||
/* 0x0968 */ s8 field_0x968;
|
||||
/* 0x096C */ f32 field_0x96c;
|
||||
/* 0x0970 */ s16 field_0x970;
|
||||
/* 0x0972 */ s16 mAction;
|
||||
/* 0x0974 */ s16 field_0x974;
|
||||
/* 0x0978 */ f32 mPlayerDistance;
|
||||
/* 0x097C */ s16 mPlayerAngleY;
|
||||
/* 0x0980 */ f32 field_0x980;
|
||||
/* 0x0984 */ f32 field_0x984;
|
||||
/* 0x0988 */ u32 mShadowKey;
|
||||
/* 0x098C */ fpc_ProcID mWbActorID;
|
||||
/* 0x0990 */ s16 field_0x990[4];
|
||||
/* 0x0998 */ s16 field_0x998;
|
||||
/* 0x0970 */ s16 counter;
|
||||
/* 0x0972 */ s16 action;
|
||||
/* 0x0974 */ s16 prev_action;
|
||||
/* 0x0978 */ f32 dis;
|
||||
/* 0x097C */ s16 angleY;
|
||||
/* 0x0980 */ f32 attack_range;
|
||||
/* 0x0984 */ f32 waterY;
|
||||
/* 0x0988 */ u32 shadow_key;
|
||||
/* 0x098C */ fpc_ProcID boar_id;
|
||||
/* 0x0990 */ s16 timer[4];
|
||||
/* 0x0998 */ s16 damage_timer;
|
||||
/* 0x099A */ s16 field_0x99a;
|
||||
/* 0x099C */ s16 field_0x99c;
|
||||
/* 0x099E */ s16 field_0x99e;
|
||||
/* 0x099C */ s16 yagura_timer;
|
||||
/* 0x099E */ s16 attack_timer;
|
||||
/* 0x09A0 */ s8 field_0x9a0;
|
||||
/* 0x09A1 */ s8 field_0x9a1;
|
||||
/* 0x09A1 */ s8 look_timer;
|
||||
/* 0x09A2 */ s8 field_0x9a2;
|
||||
/* 0x09A3 */ s8 field_0x9a3;
|
||||
/* 0x09A3 */ s8 arrow_flag;
|
||||
/* 0x09A4 */ s8 field_0x9a4;
|
||||
/* 0x09A5 */ u8 field_0x9a5;
|
||||
/* 0x09A6 */ s16 field_0x9a6;
|
||||
/* 0x09A6 */ s16 bow_shake_timer;
|
||||
/* 0x09A8 */ s16 field_0x9a8;
|
||||
/* 0x09AA */ u8 field_0x9aa;
|
||||
/* 0x09AB */ s8 field_0x9ab;
|
||||
/* 0x09AC */ s8 field_0x9ac;
|
||||
/* 0x09AD */ s8 field_0x9ad;
|
||||
/* 0x09B0 */ cXyz field_0x9b0;
|
||||
/* 0x09BC */ s8 field_0x9bc;
|
||||
/* 0x09BC */ s8 ride_mode;
|
||||
/* 0x09BD */ s8 field_0x9bd;
|
||||
/* 0x09BE */ s8 field_0x9be;
|
||||
/* 0x09BE */ s8 boar_stand;
|
||||
/* 0x09BF */ u8 field_0x9bf;
|
||||
/* 0x09C0 */ f32 field_0x9c0;
|
||||
/* 0x09C4 */ f32 field_0x9c4;
|
||||
@@ -99,16 +99,16 @@ public:
|
||||
/* 0x09CC */ s16 field_0x9cc;
|
||||
/* 0x09CE */ s16 field_0x9ce;
|
||||
/* 0x09D0 */ s16 field_0x9d0;
|
||||
/* 0x09D4 */ cXyz field_0x9d4;
|
||||
/* 0x09D4 */ cXyz eye;
|
||||
/* 0x09E0 */ cXyz field_0x9e0; // unused, dbg offset 0xa18
|
||||
/* 0x09EC */ f32 field_0x9ec;
|
||||
/* 0x09EC */ f32 jump_z;
|
||||
/* 0x09F0 */ f32 field_0x9f0;
|
||||
/* 0x09F4 */ s16 field_0x9f4;
|
||||
/* 0x09F6 */ s16 field_0x9f6;
|
||||
/* 0x09F8 */ s8 field_0x9f8;
|
||||
/* 0x09F8 */ s8 damage_flag;
|
||||
/* 0x09FC */ cXyz field_0x9fc; // unused, dbg offset 0xa34
|
||||
/* 0x0A08 */ u8 field_0xa08[0x0A0C - 0x0A08];
|
||||
/* 0x0A0C */ csXyz field_0xa0c;
|
||||
/* 0x0A0C */ csXyz jump_angle;
|
||||
/* 0x0A12 */ csXyz field_0xa12;
|
||||
/* 0x0A18 */ csXyz field_0xa18;
|
||||
/* 0x0A1E */ s8 field_0xa1e;
|
||||
@@ -139,37 +139,37 @@ public:
|
||||
/* 0x0AF8 */ s16 field_0xaf8;
|
||||
/* 0x0AFA */ s8 field_0xafa;
|
||||
/* 0x0AFB */ s8 field_0xafb;
|
||||
/* 0x0AFC */ dPath* mPath;
|
||||
/* 0x0AFC */ dPath* path;
|
||||
/* 0x0B00 */ s8 field_0xb00;
|
||||
/* 0x0B01 */ s8 field_0xb01;
|
||||
/* 0x0B04 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0B44 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x0B01 */ s8 path_dir;
|
||||
/* 0x0B04 */ dBgS_AcchCir AcchCir;
|
||||
/* 0x0B44 */ dBgS_ObjAcch ObjAcch;
|
||||
/* 0x0D1C */ dCcD_Stts mStts;
|
||||
/* 0x0D58 */ dCcD_Sph field_0xd58[3];
|
||||
/* 0x1100 */ dCcD_Sph field_0x1100;
|
||||
/* 0x1238 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x125C */ u8 field_0x125c;
|
||||
/* 0x0D58 */ dCcD_Sph cc_sph[3];
|
||||
/* 0x1100 */ dCcD_Sph at_sph;
|
||||
/* 0x1238 */ dCcU_AtInfo AtInfo;
|
||||
/* 0x125C */ u8 hio_set;
|
||||
/* 0x125D */ s8 field_0x125d;
|
||||
/* 0x1260 */ u32 field_0x1260;
|
||||
/* 0x1264 */ u32 field_0x1264;
|
||||
/* 0x1268 */ u32 field_0x1268[3];
|
||||
/* 0x1274 */ u32 field_0x1274[2];
|
||||
/* 0x1268 */ u32 enemy_downWtrA[3];
|
||||
/* 0x1274 */ u32 fire_eff[2];
|
||||
/* 0x127C */ cXyz field_0x127c;
|
||||
/* 0x1288 */ cXyz field_0x1288;
|
||||
/* 0x1294 */ s8 field_0x1294;
|
||||
/* 0x1295 */ s8 field_0x1295;
|
||||
/* 0x1295 */ s8 one_hit_kill;
|
||||
/* 0x1296 */ s8 field_0x1296;
|
||||
/* 0x1297 */ s8 field_0x1297;
|
||||
/* 0x1298 */ s8 field_0x1298;
|
||||
/* 0x1299 */ u8 field_0x1299;
|
||||
/* 0x129A */ s8 mBossMode; // 1: Eldin Field, 2 Eldin Bridge, 3 Lake Hylia Bridge, 4 ???
|
||||
/* 0x129A */ s8 actor_set; // 1: Eldin Field, 2 Eldin Bridge, 3 Lake Hylia Bridge, 4 ???
|
||||
/* 0x129B */ u8 field_0x129b;
|
||||
/* 0x129C */ s8 field_0x129c;
|
||||
/* 0x12A0 */ int field_0x12a0;
|
||||
/* 0x12A4 */ s16 mDemoMode;
|
||||
/* 0x12A6 */ s16 field_0x12a6;
|
||||
/* 0x12A8 */ cXyz mDemoCamEye;
|
||||
/* 0x12B4 */ cXyz mDemoCamCenter;
|
||||
/* 0x12A0 */ int sw;
|
||||
/* 0x12A4 */ s16 demo_mode;
|
||||
/* 0x12A6 */ s16 demo_timer;
|
||||
/* 0x12A8 */ cXyz demo_cam_eye;
|
||||
/* 0x12B4 */ cXyz demo_cam_center;
|
||||
/* 0x12C0 */ cXyz field_0x12c0;
|
||||
/* 0x12CC */ cXyz field_0x12cc;
|
||||
/* 0x12D8 */ cXyz field_0x12d8;
|
||||
@@ -177,11 +177,11 @@ public:
|
||||
/* 0x12F0 */ cXyz field_0x12f0;
|
||||
/* 0x12FC */ u8 field_0x12fc[0x1300 - 0x12fc];
|
||||
/* 0x1300 */ f32 field_0x1300;
|
||||
/* 0x1304 */ u8 mBlureRate;
|
||||
/* 0x1308 */ f32 mDemoCamFovy;
|
||||
/* 0x1304 */ u8 blurRate;
|
||||
/* 0x1308 */ f32 demo_cam_zoom;
|
||||
/* 0x130C */ f32 field_0x130c;
|
||||
/* 0x1310 */ u8 field_0x1310[0x131c - 0x1310];
|
||||
/* 0x131C */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x131C */ dMsgFlow_c MsgFlow;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_rd_class) == 0x1368);
|
||||
|
||||
@@ -15,21 +15,21 @@
|
||||
*/
|
||||
class e_warpappear_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x570 */ u8 field_0x570;
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
/* 0x578 */ mDoExt_btkAnm* mpBtk;
|
||||
/* 0x57c */ mDoExt_brkAnm* mpBrks[2];
|
||||
/* 0x568 */ request_of_phase_process_class phase;
|
||||
/* 0x570 */ u8 arg0;
|
||||
/* 0x574 */ J3DModel* model;
|
||||
/* 0x578 */ mDoExt_btkAnm* btk;
|
||||
/* 0x57c */ mDoExt_brkAnm* anm_p[2];
|
||||
/* 0x584 */ int field_0x584;
|
||||
/* 0x588 */ u8 field_0x588[0x58c - 0x588];
|
||||
/* 0x58C */ u32 mParticle1;
|
||||
/* 0x590 */ u32 mParticle2;
|
||||
/* 0x594 */ s16 field_0x594;
|
||||
/* 0x596 */ s16 field_0x596;
|
||||
/* 0x58C */ u32 portal_app_b;
|
||||
/* 0x590 */ u32 portal_app_c;
|
||||
/* 0x594 */ s16 counter;
|
||||
/* 0x596 */ s16 action;
|
||||
/* 0x598 */ s16 field_0x598;
|
||||
/* 0x59A */ s16 field_0x59a[2];
|
||||
/* 0x59E */ s16 field_0x59e;
|
||||
/* 0x5A0 */ s16 field_0x5a0;
|
||||
/* 0x59A */ s16 timer[2];
|
||||
/* 0x59E */ s16 demo_mode;
|
||||
/* 0x5A0 */ s16 demo_timer;
|
||||
/* 0x5A4 */ cXyz field_0x5a4;
|
||||
/* 0x5B0 */ cXyz field_0x5b0;
|
||||
/* 0x5BC */ cXyz field_0x5bc;
|
||||
@@ -45,8 +45,8 @@ public:
|
||||
/* 0x5F4 */ f32 field_0x5f4;
|
||||
/* 0x5F8 */ f32 field_0x5f8;
|
||||
/* 0x5FC */ f32 field_0x5fc;
|
||||
/* 0x600 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x64C */ int field_0x64c;
|
||||
/* 0x600 */ dMsgFlow_c MsgFlow;
|
||||
/* 0x64C */ int target_info_count;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_warpappear_class) == 0x650);
|
||||
|
||||
+3
-187
@@ -3,194 +3,10 @@
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dCcMassS_HitInf;
|
||||
class cCcD_Obj;
|
||||
|
||||
class dGrass_data_c {
|
||||
public:
|
||||
void WorkCo(fopAc_ac_c*, u32, int);
|
||||
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
||||
void Direction_Set(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*, csXyz*);
|
||||
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, u16);
|
||||
void hitCheck(int, u16);
|
||||
~dGrass_data_c() {}
|
||||
dGrass_data_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x01 */ u8 field_0x01;
|
||||
/* 0x02 */ s8 field_0x02;
|
||||
/* 0x03 */ u8 m_tableNo;
|
||||
/* 0x04 */ u8 m_itemBitNo;
|
||||
/* 0x05 */ u8 field_0x05;
|
||||
/* 0x06 */ u8 field_0x06[0x08 - 0x06];
|
||||
/* 0x08 */ s16 m_addCol;
|
||||
/* 0x0C */ cXyz m_pos;
|
||||
/* 0x18 */ Mtx m_modelMtx;
|
||||
/* 0x48 */ dGrass_data_c* mp_next;
|
||||
};
|
||||
|
||||
class dGrass_room_c {
|
||||
public:
|
||||
void newData(dGrass_data_c*);
|
||||
void deleteData();
|
||||
dGrass_room_c() {
|
||||
mp_data = NULL;
|
||||
}
|
||||
|
||||
dGrass_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dGrass_data_c* mp_data;
|
||||
};
|
||||
|
||||
class dGrass_anm_c {
|
||||
public:
|
||||
dGrass_anm_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x02 */ s16 m_angY;
|
||||
/* 0x04 */ s16 m_angX;
|
||||
/* 0x08 */ Mtx m_animMtx;
|
||||
};
|
||||
|
||||
class dGrass_packet_c : public J3DPacket {
|
||||
public:
|
||||
dGrass_packet_c();
|
||||
void calc();
|
||||
void update();
|
||||
void setData(dGrass_data_c*, int, cXyz&, int, u8, u8, s16, u8);
|
||||
dGrass_data_c* newData(cXyz&, int, u8, u8, s16, u8);
|
||||
void deleteRoom(int);
|
||||
int newAnm();
|
||||
void setAnm(int, s16);
|
||||
|
||||
virtual void draw();
|
||||
virtual ~dGrass_packet_c();
|
||||
|
||||
typedef void (dGrass_packet_c::*deleteFunc)(int);
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dGrass_anm_c* getAnm() { return m_anm; }
|
||||
dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; }
|
||||
|
||||
dGrass_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dGrass_data_c m_data[1500];
|
||||
/* 0x1BD64 */ dGrass_anm_c m_anm[112];
|
||||
/* 0x1D5E4 */ dGrass_room_c m_room[64];
|
||||
/* 0x1D6E4 */ Vec* mp_pos;
|
||||
/* 0x1D6E8 */ Vec* mp_normal;
|
||||
/* 0x1D6EC */ GXColor* mp_colors;
|
||||
/* 0x1D6F0 */ Vec* mp_texCoords;
|
||||
/* 0x1D6F4 */ u8* mp_kusa9q_DL;
|
||||
/* 0x1D6F8 */ u32 m_kusa9q_DL_size;
|
||||
/* 0x1D6FC */ u8* mp_kusa9q_14_DL;
|
||||
/* 0x1D700 */ u32 m_kusa9q_DL_14_size;
|
||||
/* 0x1D704 */ u8* mp_Mkusa_9q_DL;
|
||||
/* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
|
||||
/* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
|
||||
/* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
|
||||
/* 0x1D714 */ s16 field_0x1d714;
|
||||
}; // Size: 0x1D718
|
||||
|
||||
STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
|
||||
|
||||
class dFlower_data_c {
|
||||
public:
|
||||
void WorkCo(fopAc_ac_c*, u32, int);
|
||||
void deleteAnm();
|
||||
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
||||
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
|
||||
void hitCheck(fopAc_ac_c*, int);
|
||||
~dFlower_data_c();
|
||||
dFlower_data_c();
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x01 */ s8 field_0x01;
|
||||
/* 0x02 */ s8 m_tableNo;
|
||||
/* 0x03 */ u8 field_0x03;
|
||||
/* 0x04 */ s16 field_0x04;
|
||||
/* 0x08 */ cXyz m_pos;
|
||||
/* 0x14 */ Mtx m_modelMtx;
|
||||
/* 0x44 */ dFlower_data_c* mp_next;
|
||||
};
|
||||
|
||||
class dFlower_room_c {
|
||||
public:
|
||||
void newData(dFlower_data_c*);
|
||||
void deleteData();
|
||||
dFlower_room_c();
|
||||
|
||||
dFlower_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dFlower_data_c* mp_data;
|
||||
};
|
||||
|
||||
class dFlower_anm_c {
|
||||
public:
|
||||
dFlower_anm_c();
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x02 */ s16 m_angY;
|
||||
/* 0x04 */ s16 m_angX;
|
||||
/* 0x08 */ Mtx m_animMtx;
|
||||
};
|
||||
|
||||
class dFlower_packet_c : public J3DPacket {
|
||||
public:
|
||||
dFlower_packet_c();
|
||||
void calc();
|
||||
void update();
|
||||
void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
|
||||
dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
|
||||
void deleteRoom(int);
|
||||
int newAnm();
|
||||
void setAnm(int, s16);
|
||||
|
||||
virtual void draw();
|
||||
virtual ~dFlower_packet_c();
|
||||
|
||||
typedef void (dFlower_packet_c::*deleteFunc)(int);
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
|
||||
dFlower_anm_c* getAnm() { return &m_anm[0]; }
|
||||
dFlower_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
|
||||
void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
|
||||
void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; }
|
||||
void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
|
||||
cXyz& getPlayerSwordTop() { return m_playerSwordTop; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dFlower_data_c m_data[1000];
|
||||
/* 0x11954 */ dFlower_anm_c m_anm[72];
|
||||
/* 0x12914 */ dFlower_room_c m_room[64];
|
||||
/* 0x12A14 */ u8 m_playerCutFlg;
|
||||
/* 0x12A16 */ s16 m_playerSwordAngY;
|
||||
/* 0x12A18 */ s16 m_playerSwordMoveAngY;
|
||||
/* 0x12A1C */ cXyz m_playerSwordTop;
|
||||
/* 0x12A28 */ Vec* mp_pos;
|
||||
/* 0x12A2C */ GXColor* mp_colors;
|
||||
/* 0x12A30 */ Vec* mp_texCoords;
|
||||
/* 0x12A34 */ u8* mp_mat2DL;
|
||||
/* 0x12A38 */ u32 m_mat2DL_size;
|
||||
/* 0x12A3C */ u8* mp_mat2Light4DL;
|
||||
/* 0x12A40 */ u32 m_mat2Light4DL_size;
|
||||
/* 0x12A44 */ u8* mp_Jhana01DL;
|
||||
/* 0x12A48 */ u32 m_Jhana01DL_size;
|
||||
/* 0x12A4C */ u8* mp_Jhana01_cDL;
|
||||
/* 0x12A50 */ u32 m_Jhana01_cDL_size;
|
||||
}; // Size: 0x12A54
|
||||
class dCcMassS_HitInf;
|
||||
class dFlower_packet_c;
|
||||
class dGrass_packet_c;
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/d_a_itembase_static.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
|
||||
struct daItemBase_data {
|
||||
/* 0x00 */ f32 mGravity;
|
||||
|
||||
@@ -18,7 +18,7 @@ struct fs_weed_s {
|
||||
|
||||
struct fs_tsubo_s {
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ u8 field_0x0c[0x14 - 0x0c];
|
||||
/* 0x0C */ csXyz field_0x0c; // unused
|
||||
/* 0x14 */ J3DModel* model;
|
||||
/* 0x18 */ u8 field_0x18[0x1C - 0x18];
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
@@ -29,7 +29,7 @@ struct fs_tsubo_s {
|
||||
|
||||
struct fs_rod_s {
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ u8 field_0x0C[0x14 - 0x0C];
|
||||
/* 0x0C */ csXyz field_0x0C; // unused
|
||||
/* 0x14 */ J3DModel* model;
|
||||
/* 0x18 */ J3DModel* ringModel[6];
|
||||
/* 0x30 */ mDoExt_3DlineMat0_c line_mat;
|
||||
@@ -41,9 +41,7 @@ struct fs_rod_s {
|
||||
|
||||
struct fs_lure_s {
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ s16 field_0x0c;
|
||||
/* 0x0E */ s16 field_0x0e;
|
||||
/* 0x10 */ s16 field_0x10;
|
||||
/* 0x0C */ csXyz field_0x0c;
|
||||
/* 0x14 */ J3DModel* model;
|
||||
/* 0x18 */ J3DModel* hookModel[2];
|
||||
/* 0x20 */ u8 field_0x20[0x24 - 0x20];
|
||||
@@ -113,6 +111,10 @@ public:
|
||||
/* 0x40B4 */ dBgS_ObjAcch ballAcch;
|
||||
/* 0x428C */ u8 field_0x428c;
|
||||
/* 0x428D */ u8 field_0x428d;
|
||||
#if PLATFORM_SHIELD
|
||||
u8 unk_dbg_padding[0x6];
|
||||
J3DModel* dbg_models[2];
|
||||
#endif
|
||||
/* 0x4290 */ fs_koro2_s mKoro2[100];
|
||||
/* 0x6B30 */ J3DModel* canoeModel;
|
||||
/* 0x6B34 */ s16 field_0x6b34;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "d/d_msg_flow.h"
|
||||
#include "d/d_particle_copoly.h"
|
||||
#include "global.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_GetParam1 { // name unknown
|
||||
/* 0x0 */ int fileIdx;
|
||||
@@ -169,7 +170,7 @@ public:
|
||||
int chkPassed1(cXyz, int);
|
||||
int chkPassed2(cXyz, cXyz*, int, int);
|
||||
#if DEBUG
|
||||
int drawDbgInfo(f32, int);
|
||||
void drawDbgInfo(f32, int);
|
||||
#endif
|
||||
|
||||
daNpcT_Path_c() {
|
||||
@@ -276,7 +277,7 @@ public:
|
||||
cXyz cStack_50 = *mAttnPosP - param_1;
|
||||
sVar3 += cM_atan2s(cStack_50.x, cStack_50.z);
|
||||
sVar3 -= param_2;
|
||||
sVar3 -= (s16)(field_0x150.y - param_2);
|
||||
ANGLE_SUB(sVar3, field_0x150.y - param_2);
|
||||
sVar3 += param_5;
|
||||
}
|
||||
if (param_3) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_BOU_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_Bou_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include "d/actor/d_a_npc_cd2.h"
|
||||
#include "d/actor/d_a_tag_schedule.h"
|
||||
#include <cstring>
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
/* 0x5BC */ s16 field_0x5bc;
|
||||
/* 0x5BE */ s16 field_0x5be;
|
||||
/* 0x5C0 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x60C */ u8 field_0x60c[0x618 - 0x60c];
|
||||
/* 0x60C */ cXyz field_0x60c; // unused
|
||||
/* 0x618 */ s16 field_0x618;
|
||||
/* 0x61C */ f32 field_0x61c;
|
||||
/* 0x620 */ s16 field_0x620;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_KN_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_Kn_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_KOLIN_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_Kolin_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_THE_H
|
||||
|
||||
#include "d/actor/d_a_npc4.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpcThe_HIOParam {
|
||||
/* 0x00 */ daNpcF_HIOParam common;
|
||||
|
||||
@@ -48,18 +48,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daBsGate_c) == 0x5B8);
|
||||
|
||||
class daBsGate_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daBsGate_HIO_c();
|
||||
~daBsGate_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x4 */ f32 mOpenSpeed;
|
||||
/* 0x8 */ f32 mCloseSpeed;
|
||||
/* 0xC */ u8 mShockStrength;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daBsGate_HIO_c) == 0x10);
|
||||
|
||||
#endif /* D_A_OBJ_BSGATE_H */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dPath;
|
||||
struct dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
||||
@@ -15,11 +15,39 @@
|
||||
*
|
||||
*/
|
||||
|
||||
class daObj_ItaMato_HIO_c;
|
||||
struct daObj_ItaMato_HIOParam {
|
||||
/* 0x00 */ f32 attn_offset;
|
||||
/* 0x04 */ f32 gravity;
|
||||
/* 0x08 */ f32 scale;
|
||||
/* 0x0C */ f32 real_shadow_size;
|
||||
/* 0x10 */ f32 shake_pow;
|
||||
};
|
||||
|
||||
class daObj_ItaMato_Param_c {
|
||||
public:
|
||||
virtual ~daObj_ItaMato_Param_c() {}
|
||||
|
||||
static daObj_ItaMato_HIOParam const m;
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
#define OBJ_ITAMATO_HIO_CLASS daObj_ItaMato_HIO_c
|
||||
|
||||
class daObj_ItaMato_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObj_ItaMato_HIO_c();
|
||||
void genMessage(JORMContext* ctx);
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
|
||||
/* 0x8 */ daObj_ItaMato_HIOParam m;
|
||||
};
|
||||
#else
|
||||
#define OBJ_ITAMATO_HIO_CLASS daObj_ItaMato_Param_c
|
||||
#endif
|
||||
|
||||
class daObj_ItaMato_c : public fopAc_ac_c {
|
||||
private:
|
||||
/* 0x568 */ daObj_ItaMato_HIO_c* mHIO;
|
||||
/* 0x568 */ OBJ_ITAMATO_HIO_CLASS* mHIO;
|
||||
/* 0x56C */ request_of_phase_process_class mPhase;
|
||||
/* 0x574 */ J3DModel* mpModels[2];
|
||||
/* 0x57C */ dBgS_ObjAcch mBgc;
|
||||
|
||||
@@ -93,23 +93,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjKAT_c) == 0xa74);
|
||||
|
||||
class daObj_KatHIO_c : public JORReflexible {
|
||||
public:
|
||||
daObj_KatHIO_c();
|
||||
virtual ~daObj_KatHIO_c() {}
|
||||
|
||||
void genMessage(JORMContext* ctx) {
|
||||
// Golden Snail
|
||||
ctx->genLabel("黄金蟲(カタツムリ)", 0x80000001);
|
||||
// Model scale (male)
|
||||
ctx->genSlider("モデルスケール(オス)", &this->mScaleMale, 0.1f, 4.0f);
|
||||
// Model scale (female)
|
||||
ctx->genSlider("モデルスケール(メス)", &this->mScaleFemale, 0.1f, 4.0f);
|
||||
}
|
||||
|
||||
s8 field_0x4;
|
||||
f32 mScaleFemale;
|
||||
f32 mScaleMale;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_KATATSUMURI_H */
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
#include "d/d_kankyo.h"
|
||||
|
||||
|
||||
/**
|
||||
@@ -26,8 +26,8 @@ public:
|
||||
int Draw();
|
||||
int Delete();
|
||||
|
||||
u8 getSwBit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getType() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
int getSwBit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
int getType() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ request_of_phase_process_class mPhaseReq;
|
||||
@@ -51,15 +51,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daLv3Candle_c) == 0x754);
|
||||
|
||||
class daLv3Candle_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daLv3Candle_HIO_c();
|
||||
virtual ~daLv3Candle_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x00 vtable */
|
||||
/* 0x04 */ u8 field_0x04;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_LV3CANDLE_H */
|
||||
|
||||
@@ -40,10 +40,9 @@ public:
|
||||
virtual ~daLv3Water_c() {}
|
||||
virtual bool eventStart();
|
||||
|
||||
int getParam() { return fpcM_GetParam(this) >> 0xC & 0x0FFF; }
|
||||
int getParamSw() { return fpcM_GetParam(this) & 0xFF; }
|
||||
int getParam(int shift, int bit) { return fopAcM_GetParamBit(this, shift, bit); }
|
||||
int getParamEvent() { return shape_angle.x & 0xFF; }
|
||||
u8 getParamType() { return (shape_angle.x >> 8) & 0xFF; }
|
||||
int getParamType() { return (shape_angle.x & 0xFF00) >> 8; }
|
||||
u8 getType() { return mType; }
|
||||
|
||||
private:
|
||||
@@ -54,13 +53,13 @@ private:
|
||||
/* 0x5E0 */ mDoExt_btkAnm mBtk2;
|
||||
/* 0x5F8 */ u8 mMode;
|
||||
/* 0x5F9 */ u8 mType;
|
||||
/* 0x5FC */ f32 field_0x5fc;
|
||||
/* 0x600 */ u8 field_0x600;
|
||||
/* 0x601 */ u8 field_0x601;
|
||||
/* 0x602 */ u8 mSwitch1;
|
||||
/* 0x603 */ u8 mSwitch2;
|
||||
/* 0x604 */ u8 field_0x604;
|
||||
/* 0x605 */ u8 field_0x605;
|
||||
/* 0x5FC */ f32 mWaterLv; // Amount that the water's y coodinate should increase
|
||||
/* 0x600 */ u8 mCurrentWaterLvFrame; // Number of frames that the water level has been changing
|
||||
/* 0x601 */ u8 mWaterLvFrame; // Number of frames that should be taken for the water level to change
|
||||
/* 0x602 */ u8 mSwInitialState;
|
||||
/* 0x603 */ u8 mSwCurrentState;
|
||||
/* 0x604 */ u8 mLvControlWaitFrames;
|
||||
/* 0x605 */ u8 mSwStatePostEvent; // Only when true (i.e event initiated water raising instead of lowering) should anything be drawn
|
||||
/* 0x608 */ u32 mEmitterIDs[8];
|
||||
};
|
||||
|
||||
|
||||
@@ -32,21 +32,21 @@ public:
|
||||
private:
|
||||
/* 0x5B8 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5C0 */ J3DModel* mpModel;
|
||||
/* 0x5C4 */ mDoExt_btkAnm mWaterSurfaceRefractionAnm;
|
||||
/* 0x5C4 */ mDoExt_btkAnm mRefractionAnm; // Applied to water surface
|
||||
/* 0x5DC */ u8 mMode;
|
||||
/* 0x5DD */ u8 mResourceIndex;
|
||||
/* 0x5E0 */ f32 mWaterLv;
|
||||
/* 0x5E4 */ u8 mCurrentWaterLvFrame;
|
||||
/* 0x5E5 */ u8 mWaterLvFrame;
|
||||
/* 0x5E6 */ u8 mFullRatio;
|
||||
/* 0x5E7 */ u8 mEastSwInitialStatus; // East SW is the lever in the east-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E8 */ u8 mWestSwInitialStatus; // West SW is the lever in the west-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E9 */ u8 mEastSwCurrentStatus;
|
||||
/* 0x5EA */ u8 mWestSwCurrentStatus;
|
||||
/* 0x5EB */ u8 mLevelControlWaitFrames;
|
||||
/* 0x5DD */ u8 mResIdx;
|
||||
/* 0x5E0 */ f32 mWaterLv; // Amount that the water's y coodinate should increase
|
||||
/* 0x5E4 */ u8 mCurrentWaterLvFrame; // Number of frames that the water level has been changing
|
||||
/* 0x5E5 */ u8 mWaterLvFrame; // Number of frames that should be taken for the water level to change
|
||||
/* 0x5E6 */ u8 mEvActivatorSwState;
|
||||
/* 0x5E7 */ u8 mEastSwInitialState; // East SW is the lever in the east-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E8 */ u8 mWestSwInitialState; // West SW is the lever in the west-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E9 */ u8 mEastSwCurrentState;
|
||||
/* 0x5EA */ u8 mWestSwCurrentState;
|
||||
/* 0x5EB */ u8 mLvControlWaitFrames;
|
||||
/* 0x5EC */ f32 mBaseYPos;
|
||||
/* 0x5F0 */ u32 mEastWaterParticles[4]; // If the central staircase isn't rotated to allow water from the east to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
/* 0x600 */ u32 mWestWaterParticles[4]; // If the central staircase isn't rotated to allow water from the west to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
/* 0x5F0 */ u32 mEastParticles[4]; // If the central staircase isn't rotated to allow water from the east to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
/* 0x600 */ u32 mWestParticles[4]; // If the central staircase isn't rotated to allow water from the west to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
|
||||
enum Mode_e {
|
||||
WAIT, LEVEL_CTRL
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user