mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
some matches
This commit is contained in:
@@ -26,10 +26,7 @@ public:
|
||||
J3DDeformer* getDeformer() { return mDeformer; }
|
||||
void setDeformer(J3DDeformer* deformer) { mDeformer = deformer; }
|
||||
|
||||
private:
|
||||
friend class J3DClusterLoader;
|
||||
friend class J3DClusterLoader_v15;
|
||||
|
||||
public:
|
||||
/* 0x00 */ f32 mMaxAngle;
|
||||
/* 0x04 */ f32 mMinAngle;
|
||||
/* 0x08 */ J3DClusterKey* mClusterKey;
|
||||
|
||||
@@ -101,7 +101,7 @@ private:
|
||||
|
||||
/* 0x00 */ J3DDeformData* mDeformData;
|
||||
/* 0x04 */ J3DAnmCluster* mAnmCluster;
|
||||
/* 0x08 */ f32* field_0x8;
|
||||
/* 0x08 */ f32* mWeightList;
|
||||
/* 0x0C */ f32* field_0xc;
|
||||
/* 0x10 */ u32 mFlags;
|
||||
}; // Size: 0x14
|
||||
|
||||
@@ -34,15 +34,15 @@ public:
|
||||
u32 getNrmNum() const { return mNrmNum; }
|
||||
u32 getVtxNum() const { return mVtxNum; }
|
||||
GXVtxAttrFmtList* getVtxAttrFmtList() { return mVtxAttrFmtList; }
|
||||
u8 getVtxPosFrac() const { return mVtxPosFrac; }
|
||||
u8 getVtxNrmFrac() const { return mVtxNrmFrac; }
|
||||
int getVtxPosType() const { return mVtxPosType; }
|
||||
int getVtxNrmType() const { return mVtxNrmType; }
|
||||
|
||||
void setVtxPosFrac(u8 frac) { mVtxPosFrac = frac; }
|
||||
GXCompType getVtxPosType() const { return mVtxPosType; }
|
||||
void setVtxPosType(GXCompType type) { mVtxPosType = type; }
|
||||
void setVtxNrmFrac(u8 frac) { mVtxNrmFrac = frac; }
|
||||
u8 getVtxPosFrac() const { return mVtxPosFrac; }
|
||||
void setVtxPosFrac(u8 frac) { mVtxPosFrac = frac; }
|
||||
GXCompType getVtxNrmType() const { return mVtxNrmType; }
|
||||
void setVtxNrmType(GXCompType type) { mVtxNrmType = type; }
|
||||
u8 getVtxNrmFrac() const { return mVtxNrmFrac; }
|
||||
void setVtxNrmFrac(u8 frac) { mVtxNrmFrac = frac; }
|
||||
|
||||
private:
|
||||
friend class J3DModelLoader;
|
||||
@@ -78,6 +78,8 @@ public:
|
||||
s32 allocTransformedVtxPosArray();
|
||||
s32 allocTransformedVtxNrmArray();
|
||||
|
||||
J3DVertexData* getVertexData() { return mVtxData; }
|
||||
|
||||
void setCurrentVtxPos(void* pVtxPos) { mCurrentVtxPos = pVtxPos; }
|
||||
void* getCurrentVtxPos() { return mCurrentVtxPos; }
|
||||
|
||||
@@ -94,7 +96,20 @@ public:
|
||||
|
||||
void* getTransformedVtxPos(int idx) { return mTransformedVtxPosArray[idx]; }
|
||||
void* getTransformedVtxNrm(int idx) { return mTransformedVtxNrmArray[idx]; }
|
||||
J3DVertexData* getVertexData() { return mVtxData; }
|
||||
void* getVtxPosArrayPointer(int idx) { return mVtxPosArray[idx]; }
|
||||
void* getVtxNrmArrayPointer(int idx) { return mVtxNrmArray[idx]; }
|
||||
|
||||
void swapVtxPosArrayPointer() {
|
||||
void* tmp = mVtxPosArray[0];
|
||||
mVtxPosArray[0] = mVtxPosArray[1];
|
||||
mVtxPosArray[1] = tmp;
|
||||
}
|
||||
|
||||
void swapVtxNrmArrayPointer() {
|
||||
void* tmp = mVtxNrmArray[0];
|
||||
mVtxNrmArray[0] = mVtxNrmArray[1];
|
||||
mVtxNrmArray[1] = tmp;
|
||||
}
|
||||
|
||||
void swapTransformedVtxPos() {
|
||||
void* tmp = mTransformedVtxPosArray[0];
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace JASystem {
|
||||
namespace JAInter {
|
||||
class SeqUpdateData;
|
||||
namespace SystemInterface {
|
||||
s32 checkFileExsistence(char*);
|
||||
BOOL checkFileExsistence(char*);
|
||||
int checkSeqActiveFlag(JASystem::TTrack*);
|
||||
void trackToSeqp(JAISound*, u8);
|
||||
void setSeqPortargsF32(JAInter::SeqUpdateData*, u32, u8, f32);
|
||||
|
||||
@@ -29,12 +29,12 @@ public:
|
||||
|
||||
inline void clear() { mNum = 0; }
|
||||
inline void push(const char* str) {
|
||||
mStack[mNum - 1] = str;
|
||||
mStack[mNum] = str;
|
||||
mNum++;
|
||||
}
|
||||
inline bool IsStorable() const { return mNum < 4; }
|
||||
inline void pop() { mNum--; }
|
||||
inline const char* top() const { return mStack[mNum - 2]; }
|
||||
inline const char* top() const { return mStack[mNum - 1]; }
|
||||
inline bool empty() const { return mNum == 0; }
|
||||
|
||||
/* 0x00 */ const char* mStack[4];
|
||||
|
||||
@@ -42,6 +42,11 @@ public:
|
||||
bool init(ResTIMG*, ResTIMG*, ResTIMG*, ResTIMG*);
|
||||
void setRotate(float);
|
||||
void draw();
|
||||
|
||||
public:
|
||||
/* 0x04 */ J2DPicture* mPicture[3];
|
||||
/* 0x10 */ J2DPicture* mNum[3][2];
|
||||
/* 0x28 */ f32 field_0x28[14];
|
||||
};
|
||||
|
||||
class dDlst_2DObject_c : public dDlst_base_c {
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "JSystem/J3DGraphAnimator/J3DCluster.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DSkinDeform.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
|
||||
/* 802F37C4-802F37E4 .text clear__13J3DDeformDataFv */
|
||||
void J3DDeformData::clear() {
|
||||
@@ -28,37 +30,64 @@ void J3DDeformData::deform(J3DModel* model) {
|
||||
}
|
||||
|
||||
/* 802F3838-802F3900 .text deform__13J3DDeformDataFP15J3DVertexBuffer */
|
||||
void J3DDeformData::deform(J3DVertexBuffer*) {
|
||||
/* Nonmatching */
|
||||
void J3DDeformData::deform(J3DVertexBuffer* vtx) {
|
||||
vtx->swapVtxPosArrayPointer();
|
||||
vtx->swapVtxNrmArrayPointer();
|
||||
|
||||
for (u16 i = 0; i < mClusterNum; i++)
|
||||
mClusterPointer[i].getDeformer()->deform(vtx, i);
|
||||
|
||||
DCStoreRange(vtx->getVtxPosArrayPointer(0), vtx->getVertexData()->getVtxNum() * 12);
|
||||
DCStoreRange(vtx->getVtxNrmArrayPointer(0), vtx->getVertexData()->getNrmNum() * 12);
|
||||
vtx->setCurrentVtxPos(vtx->getVtxPosArrayPointer(0));
|
||||
vtx->setCurrentVtxNrm(vtx->getVtxNrmArrayPointer(0));
|
||||
}
|
||||
|
||||
/* 802F3900-802F3920 .text clear__11J3DDeformerFv */
|
||||
void J3DDeformer::clear() {
|
||||
mDeformData = NULL;
|
||||
mAnmCluster = NULL;
|
||||
field_0x8 = NULL;
|
||||
mWeightList = NULL;
|
||||
field_0xc = NULL;
|
||||
mFlags = 3;
|
||||
}
|
||||
|
||||
/* 802F3920-802F3A08 .text deform__11J3DDeformerFP15J3DVertexBufferUs */
|
||||
void J3DDeformer::deform(J3DVertexBuffer*, u16) {
|
||||
void J3DDeformer::deform(J3DVertexBuffer* vtx, u16 idx) {
|
||||
/* Nonmatching */
|
||||
u16 keyIdx = 0;
|
||||
if (mAnmCluster) {
|
||||
for (u16 i = 0; i < idx; i++)
|
||||
keyIdx += mDeformData->getClusterPointer(i)->mKeyNum;
|
||||
|
||||
for (u16 i = 0; i < mDeformData->getClusterPointer(idx)->mKeyNum; i++)
|
||||
mWeightList[i] = mAnmCluster->getWeight(keyIdx++);
|
||||
|
||||
deform(vtx, idx, mWeightList);
|
||||
}
|
||||
}
|
||||
|
||||
/* 802F3A08-802F3FA8 .text deform__11J3DDeformerFP15J3DVertexBufferUsPf */
|
||||
void J3DDeformer::deform(J3DVertexBuffer*, u16, f32*) {
|
||||
void J3DDeformer::deform(J3DVertexBuffer* vtx, u16 idx, f32* weightList) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 802F3FA8-802F4064 .text normalize__11J3DDeformerFPf */
|
||||
void J3DDeformer::normalize(f32*) {
|
||||
/* Nonmatching */
|
||||
void J3DDeformer::normalize(f32* vec) {
|
||||
f32 inv = 1.0f / sqrtf(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]);
|
||||
vec[0] *= inv;
|
||||
vec[1] *= inv;
|
||||
vec[2] *= inv;
|
||||
}
|
||||
|
||||
/* 802F4064-802F40C0 .text normalizeWeight__11J3DDeformerFiPf */
|
||||
void J3DDeformer::normalizeWeight(int, f32*) {
|
||||
/* Nonmatching */
|
||||
void J3DDeformer::normalizeWeight(int count, f32* weight) {
|
||||
f32 sum = 0.0f;
|
||||
for (u16 i = 0; i < count; i++)
|
||||
sum += weight[i];
|
||||
sum = 1.0f / sum;
|
||||
for (u16 i = 0; i < count; i++)
|
||||
weight[i] *= sum;
|
||||
}
|
||||
|
||||
/* 802F40C0-802F40F0 .text __ct__13J3DSkinDeformFv */
|
||||
|
||||
@@ -31,7 +31,7 @@ J3DClusterLoader_v15::~J3DClusterLoader_v15() {}
|
||||
void* J3DClusterLoader_v15::load(const void* i_data) {
|
||||
mpDeformData = new J3DDeformData();
|
||||
mpDeformData->clear();
|
||||
|
||||
|
||||
const JUTDataFileHeader* fileHeader = (JUTDataFileHeader*)i_data;
|
||||
const JUTDataBlockHeader* block = &fileHeader->mFirstBlock;
|
||||
for (int i = 0; i < fileHeader->mBlockNum; i++) {
|
||||
@@ -45,7 +45,7 @@ void* J3DClusterLoader_v15::load(const void* i_data) {
|
||||
}
|
||||
block = block->getNext();
|
||||
}
|
||||
|
||||
|
||||
return mpDeformData;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ void J3DClusterLoader_v15::readCluster(const J3DClusterBlock* block) {
|
||||
mpDeformData->mVtxPosNum = block->mVtxPosNum;
|
||||
mpDeformData->mVtxNrmNum = block->mVtxNrmNum;
|
||||
mpDeformData->mClusterVertexNum = block->mClusterVertexNum;
|
||||
|
||||
|
||||
if (block->mClusterName != NULL) {
|
||||
mpDeformData->mClusterName = new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(block, block->mClusterName));
|
||||
} else {
|
||||
@@ -67,28 +67,28 @@ void J3DClusterLoader_v15::readCluster(const J3DClusterBlock* block) {
|
||||
} else {
|
||||
mpDeformData->mClusterKeyName = NULL;
|
||||
}
|
||||
|
||||
|
||||
mpDeformData->mVtxPos = JSUConvertOffsetToPtr<f32>(block, block->mVtxPos);
|
||||
mpDeformData->mVtxNrm = JSUConvertOffsetToPtr<f32>(block, block->mVtxNrm);
|
||||
|
||||
|
||||
mpDeformData->mClusterPointer = new J3DCluster[mpDeformData->getClusterNum()];
|
||||
J3DCluster* blockCluster = JSUConvertOffsetToPtr<J3DCluster>(block, block->mClusterPointer);
|
||||
for (int i = 0; i < mpDeformData->getClusterNum(); i++) {
|
||||
mpDeformData->mClusterPointer[i] = blockCluster[i];
|
||||
}
|
||||
|
||||
|
||||
mpDeformData->mClusterKeyPointer = new J3DClusterKey[mpDeformData->getClusterKeyNum()];
|
||||
J3DClusterKey* blockClusterKey = JSUConvertOffsetToPtr<J3DClusterKey>(block, block->mClusterKeyPointer);
|
||||
for (int i = 0; i < mpDeformData->getClusterKeyNum(); i++) {
|
||||
mpDeformData->mClusterKeyPointer[i] = blockClusterKey[i];
|
||||
}
|
||||
|
||||
|
||||
mpDeformData->mClusterVertex = new J3DClusterVertex[mpDeformData->mClusterVertexNum];
|
||||
J3DClusterVertex* blockClusterVertex = JSUConvertOffsetToPtr<J3DClusterVertex>(block, block->mClusterVertex);
|
||||
for (int i = 0; i < mpDeformData->mClusterVertexNum; i++) {
|
||||
mpDeformData->mClusterVertex[i] = blockClusterVertex[i];
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < mpDeformData->getClusterNum(); i++) {
|
||||
J3DCluster* cluster = &mpDeformData->mClusterPointer[i];
|
||||
cluster->mClusterKey = JSUConvertOffsetToPtr<J3DClusterKey>(block, cluster->mClusterKey);
|
||||
@@ -103,16 +103,16 @@ void J3DClusterLoader_v15::readCluster(const J3DClusterBlock* block) {
|
||||
deformer->field_0xc = NULL;
|
||||
}
|
||||
deformer->mFlags = cluster->mFlags;
|
||||
deformer->field_0x8 = new f32[cluster->mKeyNum];
|
||||
deformer->mWeightList = new f32[cluster->mKeyNum];
|
||||
cluster->setDeformer(deformer);
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < mpDeformData->getClusterKeyNum(); i++) {
|
||||
J3DClusterKey* clusterKey = &mpDeformData->mClusterKeyPointer[i];
|
||||
clusterKey->field_0x4 = JSUConvertOffsetToPtr<u16>(block, clusterKey->field_0x4);
|
||||
clusterKey->field_0x8 = JSUConvertOffsetToPtr<u16>(block, clusterKey->field_0x8);
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < mpDeformData->mClusterVertexNum; i++) {
|
||||
J3DClusterVertex* clusterVertex = &mpDeformData->mClusterVertex[i];
|
||||
clusterVertex->field_0x4 = JSUConvertOffsetToPtr<u16>(block, clusterVertex->field_0x4);
|
||||
|
||||
@@ -10,8 +10,11 @@
|
||||
JASystem::Kernel::TPortCmd JAInter::SystemInterface::systemPortCmd;
|
||||
|
||||
/* 8029E188-8029E1B4 .text checkFileExsistence__Q27JAInter15SystemInterfaceFPc */
|
||||
s32 JAInter::SystemInterface::checkFileExsistence(char* param_1) {
|
||||
return DVDConvertPathToEntrynum(param_1) != -1;
|
||||
BOOL JAInter::SystemInterface::checkFileExsistence(char* param_1) {
|
||||
if (DVDConvertPathToEntrynum(param_1) != -1)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 8029E1B4-8029E2A0 .text checkSeqActiveFlag__Q27JAInter15SystemInterfaceFPQ28JASystem6TTrack */
|
||||
|
||||
@@ -17,7 +17,7 @@ JMessage::TResourceContainer::TResourceContainer() {
|
||||
/* 8029FD04-8029FD90 .text Get_groupID__Q28JMessage18TResourceContainerFUs */
|
||||
JMessage::TResource* JMessage::TResourceContainer::Get_groupID(u16 groupID) {
|
||||
/* Nonmatching */
|
||||
for (iterator iter = begin(); iter != end(); ++iter) {
|
||||
for (iterator iter = begin(); iter != end(); iter++) {
|
||||
TResource* res = &(*iter);
|
||||
if (res->mInfo.get_groupID() == groupID)
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user