From 06e91f9dd24d6e0d01a8cb3a75a70187b12c2ab7 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Thu, 9 Jun 2016 13:44:59 +0200 Subject: [PATCH] Some tests --- .../Modules/AssetInterfaces/IXModel.cpp | 28 ++++++++++++++++--- src/Game/Structs.hpp | 3 +- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/Components/Modules/AssetInterfaces/IXModel.cpp b/src/Components/Modules/AssetInterfaces/IXModel.cpp index 24ff21db..ef76afe4 100644 --- a/src/Components/Modules/AssetInterfaces/IXModel.cpp +++ b/src/Components/Modules/AssetInterfaces/IXModel.cpp @@ -12,7 +12,7 @@ namespace Assets // Allocate new model and copy the base data to it Game::XModel* model = builder->GetAllocator()->AllocateArray(); - memcpy(model, baseModel, sizeof(Game::XModel)); + std::memcpy(model, baseModel, sizeof(Game::XModel)); Utils::Stream::Reader reader(builder->GetAllocator(), modelFile.GetBuffer()); @@ -43,7 +43,7 @@ namespace Assets Game::XSurface* baseSurface = &baseModel->lods[0].surfaces[0].surfaces[0]; Game::XModelSurfs* surf = builder->GetAllocator()->AllocateArray(); - memcpy(surf, baseModel->lods[0].surfaces, sizeof(Game::XModelSurfs)); + std::memcpy(surf, baseModel->lods[0].surfaces, sizeof(Game::XModelSurfs)); surf->name = builder->GetAllocator()->DuplicateString(Utils::VA("%s1", model->name)); surf->surfaces = builder->GetAllocator()->AllocateArray(model->numSurfaces); surf->numSurfaces = model->numSurfaces; @@ -62,7 +62,7 @@ namespace Assets for (int i = 0; i < surf->numSurfaces; ++i) { Game::XSurface* surface = &surf->surfaces[i]; - memcpy(surface, baseSurface, sizeof(Game::XSurface)); + std::memcpy(surface, baseSurface, sizeof(Game::XSurface)); surface->numVertices = reader.Read(); surface->numPrimitives = reader.Read(); @@ -103,7 +103,15 @@ namespace Assets for (char i = 0; i < model->numSurfaces; ++i) { model->materials[i] = Components::AssetHandler::FindAssetForZone(Game::XAssetType::ASSET_TYPE_MATERIAL, reader.ReadString(), builder).material; - model->materials[i] = baseModel->materials[0]; + + //if (i < 9) + { + model->materials[i] = baseModel->materials[0]; + } +// else +// { +// OutputDebugStringA(model->materials[i]->name); +// } } // Read collision surfaces @@ -199,6 +207,18 @@ namespace Assets buffer->PushBlock(Game::XFILE_BLOCK_VIRTUAL); +// if (!strcmp(asset->name, "viewmodel_m40a3")) +// { +// for (char i = 0; i < asset->numBones; ++i) +// { +// OutputDebugStringA(Utils::VA("Bounds[%d][0]: %f - %X\n", i, asset->boneInfo[i].bounds[0], *(DWORD*)&asset->boneInfo[i].bounds[0])); +// OutputDebugStringA(Utils::VA("Bounds[%d][1]: %f - %X\n", i, asset->boneInfo[i].bounds[1], *(DWORD*)&asset->boneInfo[i].bounds[1])); +// OutputDebugStringA(Utils::VA("Bounds[%d][2]: %f - %X\n\n", i, asset->boneInfo[i].bounds[2], *(DWORD*)&asset->boneInfo[i].bounds[2])); +// } +// +// __debugbreak(); +// } + if (asset->name) { buffer->SaveString(builder->GetAssetName(this->GetType(), asset->name)); diff --git a/src/Game/Structs.hpp b/src/Game/Structs.hpp index 6dc93e86..4b8b6062 100644 --- a/src/Game/Structs.hpp +++ b/src/Game/Structs.hpp @@ -1468,7 +1468,8 @@ namespace Game struct XBoneInfo { - float bounds[2][3]; + float offset[3]; + float bounds[3]; float radiusSquared; };