some matches

This commit is contained in:
Jasper St. Pierre
2024-04-14 07:59:39 -07:00
parent 0a1ce59327
commit 3fae1c28c3
10 changed files with 87 additions and 38 deletions
+38 -9
View File
@@ -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 */
+11 -11
View File
@@ -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);
+5 -2
View File
@@ -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 */
+1 -1
View File
@@ -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;