[IclipMap_t] Structure fixes

This commit is contained in:
momo5502 2016-12-20 22:26:58 +01:00
parent 756d7c15a9
commit c216929687
2 changed files with 304 additions and 297 deletions

View File

@ -26,7 +26,8 @@ namespace Assets
buffer->align(Utils::Stream::ALIGN_4);
Game::cStaticModel* destStaticModelList = buffer->dest<Game::cStaticModel>();
buffer->save(asset->staticModelList, sizeof(Game::cStaticModel), asset->numStaticModels);
for (int i = 0; i < asset->numStaticModels; i++) {
for (int i = 0; i < asset->numStaticModels; i++)
{
if (asset->staticModelList[i].xmodel)
{
destStaticModelList[i].xmodel = builder->requireAsset(Game::XAssetType::ASSET_TYPE_XMODEL, asset->staticModelList[i].xmodel->name).model;
@ -108,6 +109,7 @@ namespace Assets
buffer->align(Utils::Stream::ALIGN_4);
Game::cLeafBrushNode* node = buffer->dest<Game::cLeafBrushNode>();
buffer->save(asset->cLeafBrushNodes, sizeof(Game::cLeafBrushNode), asset->numCLeafBrushNodes);
for (int i = 0; i < asset->numCLeafBrushNodes; i++)
{
if (node[i].leafBrushCount > 0)
@ -163,6 +165,7 @@ namespace Assets
buffer->align(Utils::Stream::ALIGN_4);
Game::CollisionPartition* border = buffer->dest<Game::CollisionPartition>();
buffer->save(asset->collisionPartitions, sizeof(Game::CollisionPartition), asset->numCollisionPartitions);
for (int i = 0; i < asset->numCollisionPartitions; i++)
{
if (border[i].borders) // OffsetToPointer
@ -194,20 +197,24 @@ namespace Assets
buffer->align(Utils::Stream::ALIGN_128);
Game::cBrush* brushes = buffer->dest<Game::cBrush>();
buffer->save(asset->cBrushes, sizeof(Game::cBrush), asset->numCBrushes);
for(int i=0; i<asset->numCBrushes; i++)
for (short i = 0; i < asset->numCBrushes; i++)
{
if (brushes[i].brushSide)
{
Game::cBrushSide* side = buffer->dest<Game::cBrushSide>();
buffer->save(brushes[i].brushSide, sizeof(Game::cBrushSide), 1);
if (brushes[i].brushSide->side)
{
buffer->align(Utils::Stream::ALIGN_4);
buffer->save(brushes[i].brushSide->side, sizeof(Game::cPlane), 1);
Utils::Stream::ClearPointer(&side->side);
}
Utils::Stream::ClearPointer(&brushes[i].brushSide);
}
if (brushes[i].brushEdge)
{
buffer->save(brushes[i].brushEdge, 1, 1);