mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-12 05:28:43 -04:00
JParticle BE fixes
This commit is contained in:
@@ -14,14 +14,14 @@ class JKRHeap;
|
||||
struct JPABaseShapeData {
|
||||
// Common header.
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ s16 mClrPrmAnmOffset;
|
||||
/* 0x0E */ s16 mClrEnvAnmOffset;
|
||||
/* 0x10 */ f32 mBaseSizeX;
|
||||
/* 0x14 */ f32 mBaseSizeY;
|
||||
/* 0x18 */ u16 mBlendModeCfg;
|
||||
/* 0x08 */ BE(u32) mFlags;
|
||||
/* 0x0C */ BE(s16) mClrPrmAnmOffset;
|
||||
/* 0x0E */ BE(s16) mClrEnvAnmOffset;
|
||||
/* 0x10 */ BE(f32) mBaseSizeX;
|
||||
/* 0x14 */ BE(f32) mBaseSizeY;
|
||||
/* 0x18 */ BE(u16) mBlendModeCfg;
|
||||
/* 0x1A */ u8 mAlphaCompareCfg;
|
||||
/* 0x1B */ u8 mAlphaRef0;
|
||||
/* 0x1C */ u8 mAlphaRef1;
|
||||
@@ -32,7 +32,7 @@ struct JPABaseShapeData {
|
||||
/* 0x21 */ u8 mClrFlg;
|
||||
/* 0x22 */ u8 prmAnmKeyNum;
|
||||
/* 0x23 */ u8 envAnmKeyNum;
|
||||
/* 0x24 */ s16 mClrAnmFrmMax;
|
||||
/* 0x24 */ BE(s16) mClrAnmFrmMax;
|
||||
/* 0x26 */ GXColor mClrPrm;
|
||||
/* 0x2A */ GXColor mClrEnv;
|
||||
/* 0x2E */ u8 mAnmRndm;
|
||||
@@ -114,16 +114,16 @@ public:
|
||||
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]; }
|
||||
f32 getIncTransY() const { return ((f32*)mpTexCrdMtxAnmTbl)[6]; }
|
||||
f32 getInitTransY() const { return ((f32*)mpTexCrdMtxAnmTbl)[1]; }
|
||||
f32 getIncScaleX() const { return ((f32*)mpTexCrdMtxAnmTbl)[7]; }
|
||||
f32 getInitScaleX() const { return ((f32*)mpTexCrdMtxAnmTbl)[2]; }
|
||||
f32 getIncScaleY() const { return ((f32*)mpTexCrdMtxAnmTbl)[8]; }
|
||||
f32 getInitScaleY() const { return ((f32*)mpTexCrdMtxAnmTbl)[3]; }
|
||||
f32 getIncRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[9]; }
|
||||
f32 getInitRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[4]; }
|
||||
f32 getIncTransX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[5]; }
|
||||
f32 getInitTransX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[0]; }
|
||||
f32 getIncTransY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[6]; }
|
||||
f32 getInitTransY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[1]; }
|
||||
f32 getIncScaleX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[7]; }
|
||||
f32 getInitScaleX() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[2]; }
|
||||
f32 getIncScaleY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[8]; }
|
||||
f32 getInitScaleY() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[3]; }
|
||||
f32 getIncRot() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[9]; }
|
||||
f32 getInitRot() const { return ((BE(f32)*)mpTexCrdMtxAnmTbl)[4]; }
|
||||
u8 getTexAnmKeyNum() const { return pBsd->texAnmKeyNum; }
|
||||
|
||||
public:
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
*
|
||||
*/
|
||||
struct JPAClrAnmKeyData {
|
||||
/* 0x0 */ s16 index;
|
||||
/* 0x0 */ BE(s16) index;
|
||||
/* 0x2 */ GXColor color;
|
||||
};
|
||||
|
||||
|
||||
@@ -13,27 +13,27 @@ class JPABaseParticle;
|
||||
struct JPAChildShapeData {
|
||||
// Common header.
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ f32 mPosRndm;
|
||||
/* 0x10 */ f32 mBaseVel;
|
||||
/* 0x14 */ f32 mBaseVelRndm;
|
||||
/* 0x18 */ f32 mVelInfRate;
|
||||
/* 0x1C */ f32 mGravity;
|
||||
/* 0x20 */ f32 mScaleX;
|
||||
/* 0x24 */ f32 mScaleY;
|
||||
/* 0x28 */ f32 mInheritScale;
|
||||
/* 0x2C */ f32 mInheritAlpha;
|
||||
/* 0x30 */ f32 mInheritRGB;
|
||||
/* 0x08 */ BE(u32) mFlags;
|
||||
/* 0x0C */ BE(f32) mPosRndm;
|
||||
/* 0x10 */ BE(f32) mBaseVel;
|
||||
/* 0x14 */ BE(f32) mBaseVelRndm;
|
||||
/* 0x18 */ BE(f32) mVelInfRate;
|
||||
/* 0x1C */ BE(f32) mGravity;
|
||||
/* 0x20 */ BE(f32) mScaleX;
|
||||
/* 0x24 */ BE(f32) mScaleY;
|
||||
/* 0x28 */ BE(f32) mInheritScale;
|
||||
/* 0x2C */ BE(f32) mInheritAlpha;
|
||||
/* 0x30 */ BE(f32) mInheritRGB;
|
||||
/* 0x34 */ GXColor mPrmClr;
|
||||
/* 0x38 */ GXColor mEnvClr;
|
||||
/* 0x3C */ f32 mTiming;
|
||||
/* 0x40 */ s16 mLife;
|
||||
/* 0x42 */ s16 mRate;
|
||||
/* 0x3C */ BE(f32) mTiming;
|
||||
/* 0x40 */ BE(s16) mLife;
|
||||
/* 0x42 */ BE(s16) mRate;
|
||||
/* 0x44 */ u8 mStep;
|
||||
/* 0x45 */ u8 mTexIdx;
|
||||
/* 0x46 */ s16 mRotSpeed;
|
||||
/* 0x46 */ BE(s16) mRotSpeed;
|
||||
}; // Size: 0x48
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "JSystem/JGeometry.h"
|
||||
|
||||
#include <dolphin/types.h>
|
||||
#include "dusk/endian.h"
|
||||
|
||||
struct JPAEmitterWorkData;
|
||||
|
||||
@@ -14,32 +15,32 @@ struct JPAEmitterWorkData;
|
||||
struct JPADynamicsBlockData {
|
||||
// Common header.
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ u32 mResUserWork;
|
||||
/* 0x10 */ JGeometry::TVec3<f32> mEmitterScl;
|
||||
/* 0x1C */ JGeometry::TVec3<f32> mEmitterTrs;
|
||||
/* 0x28 */ JGeometry::TVec3<f32> mEmitterDir;
|
||||
/* 0x34 */ f32 mInitialVelOmni;
|
||||
/* 0x38 */ f32 mInitialVelAxis;
|
||||
/* 0x3C */ f32 mInitialVelRndm;
|
||||
/* 0x40 */ f32 mInitialVelDir;
|
||||
/* 0x44 */ f32 mSpread;
|
||||
/* 0x48 */ f32 mInitialVelRatio;
|
||||
/* 0x4C */ f32 mRate;
|
||||
/* 0x50 */ f32 mRateRndm;
|
||||
/* 0x54 */ f32 mLifeTimeRndm;
|
||||
/* 0x58 */ f32 mVolumeSweep;
|
||||
/* 0x5C */ f32 mVolumeMinRad;
|
||||
/* 0x60 */ f32 mAirResist;
|
||||
/* 0x64 */ f32 mMoment;
|
||||
/* 0x68 */ JGeometry::TVec3<s16> mEmitterRot;
|
||||
/* 0x6E */ s16 mMaxFrame;
|
||||
/* 0x70 */ s16 mStartFrame;
|
||||
/* 0x72 */ s16 mLifeTime;
|
||||
/* 0x74 */ u16 mVolumeSize;
|
||||
/* 0x76 */ u16 mDivNumber;
|
||||
/* 0x08 */ BE(u32) mFlags;
|
||||
/* 0x0C */ BE(u32) mResUserWork;
|
||||
/* 0x10 */ JGeometry::TVec3<BE(f32)> mEmitterScl;
|
||||
/* 0x1C */ JGeometry::TVec3<BE(f32)> mEmitterTrs;
|
||||
/* 0x28 */ JGeometry::TVec3<BE(f32)> mEmitterDir;
|
||||
/* 0x34 */ BE(f32) mInitialVelOmni;
|
||||
/* 0x38 */ BE(f32) mInitialVelAxis;
|
||||
/* 0x3C */ BE(f32) mInitialVelRndm;
|
||||
/* 0x40 */ BE(f32) mInitialVelDir;
|
||||
/* 0x44 */ BE(f32) mSpread;
|
||||
/* 0x48 */ BE(f32) mInitialVelRatio;
|
||||
/* 0x4C */ BE(f32) mRate;
|
||||
/* 0x50 */ BE(f32) mRateRndm;
|
||||
/* 0x54 */ BE(f32) mLifeTimeRndm;
|
||||
/* 0x58 */ BE(f32) mVolumeSweep;
|
||||
/* 0x5C */ BE(f32) mVolumeMinRad;
|
||||
/* 0x60 */ BE(f32) mAirResist;
|
||||
/* 0x64 */ BE(f32) mMoment;
|
||||
/* 0x68 */ JGeometry::TVec3<BE(s16)> mEmitterRot;
|
||||
/* 0x6E */ BE(s16) mMaxFrame;
|
||||
/* 0x70 */ BE(s16) mStartFrame;
|
||||
/* 0x72 */ BE(s16) mLifeTime;
|
||||
/* 0x74 */ BE(u16) mVolumeSize;
|
||||
/* 0x76 */ BE(u16) mDivNumber;
|
||||
/* 0x78 */ u8 mRateStep;
|
||||
}; // Size: 0x7C
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ struct JPAEmitterWorkData;
|
||||
struct JPAExTexShapeData {
|
||||
// Common header.
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ f32 mIndTexMtx[2][3];
|
||||
/* 0x08 */ BE(u32) mFlags;
|
||||
/* 0x0C */ BE(f32) mIndTexMtx[2][3];
|
||||
/* 0x24 */ s8 mExpScale;
|
||||
/* 0x25 */ s8 mIndTexIdx;
|
||||
/* 0x26 */ s8 mSecTexIdx;
|
||||
@@ -29,7 +29,7 @@ class JPAExTexShape {
|
||||
public:
|
||||
JPAExTexShape(u8 const*);
|
||||
|
||||
const f32* getIndTexMtx() const { return &mpData->mIndTexMtx[0][0]; }
|
||||
const BE(f32)* getIndTexMtx() const { return &mpData->mIndTexMtx[0][0]; }
|
||||
s8 getExpScale() const { return mpData->mExpScale; }
|
||||
u8 getIndTexIdx() const { return mpData->mIndTexIdx; }
|
||||
u8 getSecTexIdx() const { return mpData->mSecTexIdx; }
|
||||
|
||||
@@ -13,31 +13,31 @@ class JPABaseParticle;
|
||||
struct JPAExtraShapeData {
|
||||
// Common header.
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ f32 mScaleInTiming;
|
||||
/* 0x10 */ f32 mScaleOutTiming;
|
||||
/* 0x14 */ f32 mScaleInValueX;
|
||||
/* 0x18 */ f32 mScaleOutValueX;
|
||||
/* 0x1C */ f32 mScaleInValueY;
|
||||
/* 0x20 */ f32 mScaleOutValueY;
|
||||
/* 0x24 */ f32 mScaleOutRandom;
|
||||
/* 0x28 */ s16 mScaleAnmCycleX;
|
||||
/* 0x2A */ s16 mScaleAnmCycleY;
|
||||
/* 0x2C */ f32 mAlphaInTiming;
|
||||
/* 0x30 */ f32 mAlphaOutTiming;
|
||||
/* 0x34 */ f32 mAlphaInValue;
|
||||
/* 0x38 */ f32 mAlphaBaseValue;
|
||||
/* 0x3C */ f32 mAlphaOutValue;
|
||||
/* 0x40 */ f32 mAlphaWaveFrequency;
|
||||
/* 0x44 */ f32 mAlphaWaveRandom;
|
||||
/* 0x48 */ f32 mAlphaWaveAmplitude;
|
||||
/* 0x4C */ f32 mRotateAngle;
|
||||
/* 0x50 */ f32 mRotateAngleRandom;
|
||||
/* 0x54 */ f32 mRotateSpeed;
|
||||
/* 0x58 */ f32 mRotateSpeedRandom;
|
||||
/* 0x5C */ f32 mRotateDirection;
|
||||
/* 0x08 */ BE(u32) mFlags;
|
||||
/* 0x0C */ BE(f32) mScaleInTiming;
|
||||
/* 0x10 */ BE(f32) mScaleOutTiming;
|
||||
/* 0x14 */ BE(f32) mScaleInValueX;
|
||||
/* 0x18 */ BE(f32) mScaleOutValueX;
|
||||
/* 0x1C */ BE(f32) mScaleInValueY;
|
||||
/* 0x20 */ BE(f32) mScaleOutValueY;
|
||||
/* 0x24 */ BE(f32) mScaleOutRandom;
|
||||
/* 0x28 */ BE(s16) mScaleAnmCycleX;
|
||||
/* 0x2A */ BE(s16) mScaleAnmCycleY;
|
||||
/* 0x2C */ BE(f32) mAlphaInTiming;
|
||||
/* 0x30 */ BE(f32) mAlphaOutTiming;
|
||||
/* 0x34 */ BE(f32) mAlphaInValue;
|
||||
/* 0x38 */ BE(f32) mAlphaBaseValue;
|
||||
/* 0x3C */ BE(f32) mAlphaOutValue;
|
||||
/* 0x40 */ BE(f32) mAlphaWaveFrequency;
|
||||
/* 0x44 */ BE(f32) mAlphaWaveRandom;
|
||||
/* 0x48 */ BE(f32) mAlphaWaveAmplitude;
|
||||
/* 0x4C */ BE(f32) mRotateAngle;
|
||||
/* 0x50 */ BE(f32) mRotateAngleRandom;
|
||||
/* 0x54 */ BE(f32) mRotateSpeed;
|
||||
/* 0x58 */ BE(f32) mRotateSpeedRandom;
|
||||
/* 0x5C */ BE(f32) mRotateDirection;
|
||||
}; // Size: 0x60
|
||||
|
||||
/**
|
||||
|
||||
@@ -103,17 +103,17 @@ public:
|
||||
class JPAFieldBlockData {
|
||||
public:
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ JGeometry::TVec3<f32> mPos;
|
||||
/* 0x18 */ JGeometry::TVec3<f32> mDir;
|
||||
/* 0x24 */ f32 mMag;
|
||||
/* 0x28 */ f32 mMagRndm;
|
||||
/* 0x2C */ f32 mVal1;
|
||||
/* 0x30 */ f32 mFadeInTime;
|
||||
/* 0x34 */ f32 mFadeOutTime;
|
||||
/* 0x38 */ f32 mEnTime;
|
||||
/* 0x3C */ f32 mDisTime;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
/* 0x08 */ BE(u32) mFlags;
|
||||
/* 0x0C */ JGeometry::TVec3<BE(f32)> mPos;
|
||||
/* 0x18 */ JGeometry::TVec3<BE(f32)> mDir;
|
||||
/* 0x24 */ BE(f32) mMag;
|
||||
/* 0x28 */ BE(f32) mMagRndm;
|
||||
/* 0x2C */ BE(f32) mVal1;
|
||||
/* 0x30 */ BE(f32) mFadeInTime;
|
||||
/* 0x34 */ BE(f32) mFadeOutTime;
|
||||
/* 0x38 */ BE(f32) mEnTime;
|
||||
/* 0x3C */ BE(f32) mDisTime;
|
||||
/* 0x40 */ u8 mCycle;
|
||||
};
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ struct JPAKeyBlock {
|
||||
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 BE(f32)* getKeyData() const { return field_0x4; }
|
||||
|
||||
const u8* mDataStart;
|
||||
const f32* field_0x4;
|
||||
const BE(f32)* field_0x4;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ void JPAGetYZRotateMtx(s16 angleY, s16 angleZ, f32 (*param_2)[4]);
|
||||
void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx dst);
|
||||
void JPASetRMtxTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4],
|
||||
JGeometry::TVec3<f32>* param_2);
|
||||
f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2);
|
||||
f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, BE(f32) const* param_2);
|
||||
void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4],
|
||||
JGeometry::TVec3<f32>* param_2, JGeometry::TVec3<f32>* param_3);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JPARESOURCE_H
|
||||
|
||||
#include <dolphin/types.h>
|
||||
#include "dusk/endian.h"
|
||||
|
||||
class JKRHeap;
|
||||
struct JPAEmitterWorkData;
|
||||
@@ -64,7 +65,7 @@ public:
|
||||
/* 0x2C */ JPADynamicsBlock* pDyn;
|
||||
/* 0x30 */ JPAFieldBlock** ppFld;
|
||||
/* 0x34 */ JPAKeyBlock** ppKey;
|
||||
/* 0x38 */ u16 const* mpTDB1;
|
||||
/* 0x38 */ BE(u16) const* mpTDB1;
|
||||
/* 0x3C */ u16 mUsrIdx;
|
||||
/* 0x3E */ u8 fldNum;
|
||||
/* 0x3F */ u8 keyNum;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
JPAKeyBlock::JPAKeyBlock(const u8* data)
|
||||
: mDataStart(data)
|
||||
, field_0x4(reinterpret_cast<const float*>(&data[0xC]))
|
||||
, field_0x4(reinterpret_cast<const BE(float)*>(&data[0xC]))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ void JPASetRMtxSTVecfromMtx(f32 const (*param_0)[4], f32 (*param_1)[4],
|
||||
param_3->set(param_0[0][3], param_0[1][3], param_0[2][3]);
|
||||
}
|
||||
|
||||
f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, f32 const* param_2) {
|
||||
f32 JPACalcKeyAnmValue(f32 param_0, u16 param_1, BE(f32) const* param_2) {
|
||||
if (param_0 < param_2[0]) {
|
||||
return param_2[1];
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ static void dummy1() {
|
||||
}
|
||||
|
||||
JPAResourceLoader::JPAResourceLoader(u8 const* data, JPAResourceManager* mgr) {
|
||||
if (*(u32*)(data + 4) == '2-10') {
|
||||
if (*(BE(u32)*)(data + 4) == '2-10') {
|
||||
load_jpc(data, mgr);
|
||||
} else {
|
||||
JUT_WARN(48, "JPA : wrong version file\n");
|
||||
@@ -42,8 +42,8 @@ static void dummy2() {
|
||||
}
|
||||
|
||||
struct JPAResourceHeader {
|
||||
/* 0x0 */ u16 mUsrIdx;
|
||||
/* 0x2 */ u16 mBlockNum;
|
||||
/* 0x0 */ BE(u16) mUsrIdx;
|
||||
/* 0x2 */ BE(u16) mBlockNum;
|
||||
/* 0x4 */ u8 mFieldBlockNum;
|
||||
/* 0x5 */ u8 mKeyBlockNum;
|
||||
/* 0x6 */ u8 mTDB1Num;
|
||||
@@ -51,14 +51,14 @@ struct JPAResourceHeader {
|
||||
|
||||
void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr) {
|
||||
JKRHeap* heap = p_res_mgr->mpHeap;
|
||||
p_res_mgr->resMaxNum = *(u16*)(data + 8);
|
||||
p_res_mgr->texMaxNum = *(u16*)(data + 0xA);
|
||||
p_res_mgr->resMaxNum = *(BE(u16)*)(data + 8);
|
||||
p_res_mgr->texMaxNum = *(BE(u16)*)(data + 0xA);
|
||||
p_res_mgr->pResAry = new (heap, 0) JPAResource*[p_res_mgr->resMaxNum];
|
||||
p_res_mgr->pTexAry = new (heap, 0) JPATexture*[p_res_mgr->texMaxNum];
|
||||
JUT_ASSERT(199, (p_res_mgr->pResAry != NULL) && (p_res_mgr->pTexAry != 0));
|
||||
|
||||
u32 offset = 0x10;
|
||||
for (int i = 0; i < *(u16*)(data + 8); i++) {
|
||||
for (int i = 0; i < *(BE(u16)*)(data + 8); i++) {
|
||||
JPAResourceHeader* header = (JPAResourceHeader*)(data + offset);
|
||||
JPAResource* p_res = new (heap, 0) JPAResource();
|
||||
JUT_ASSERT(211, p_res != NULL);
|
||||
@@ -79,8 +79,8 @@ void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr)
|
||||
u32 key_no = 0;
|
||||
|
||||
for (int j = 0; j < header->mBlockNum; j++) {
|
||||
u32 magic = *(u32*)(data + offset);
|
||||
u32 size = *(u32*)(data + offset + 4);
|
||||
u32 magic = *(BE(u32)*)(data + offset);
|
||||
u32 size = *(BE(u32)*)(data + offset + 4);
|
||||
switch (magic) {
|
||||
case 'FLD1':
|
||||
p_res->ppFld[fld_no] = new (heap, 0) JPAFieldBlock(data + offset, heap);
|
||||
@@ -113,7 +113,7 @@ void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr)
|
||||
JUT_ASSERT(270, p_res->pEts != NULL);
|
||||
break;
|
||||
case 'TDB1':
|
||||
p_res->mpTDB1 = (const u16*)(data + offset + 8);
|
||||
p_res->mpTDB1 = (const BE(u16)*)(data + offset + 8);
|
||||
break;
|
||||
default:
|
||||
JUT_WARN(275, "JPA : wrong type block in jpc file %d %x\n", header->mBlockNum, offset);
|
||||
@@ -126,9 +126,9 @@ void JPAResourceLoader::load_jpc(u8 const* data, JPAResourceManager* p_res_mgr)
|
||||
p_res_mgr->registRes(p_res);
|
||||
}
|
||||
|
||||
offset = *(u32*)(data + 0xC);
|
||||
for (int i = 0; i < *(u16*)(data + 0xA); i++) {
|
||||
u32 size = *(u32*)(data + offset + 4);
|
||||
offset = *(BE(u32)*)(data + 0xC);
|
||||
for (int i = 0; i < *(BE(u16)*)(data + 0xA); i++) {
|
||||
u32 size = *(BE(u32)*)(data + offset + 4);
|
||||
JPATexture* p_tex = new (heap, 0) JPATexture(data + offset);
|
||||
JUT_ASSERT(298, p_tex != NULL);
|
||||
p_res_mgr->registTex(p_tex);
|
||||
|
||||
Reference in New Issue
Block a user