[ZoneBuilder] Some clipmap fixes (which don't work 😦)

This commit is contained in:
momo5502 2016-12-22 23:21:20 +01:00
parent 66c35f7f47
commit 9fab21c269
3 changed files with 17 additions and 11 deletions

View File

@ -49,33 +49,32 @@ namespace Assets
Utils::Stream::ClearPointer(&dest->entityString);
}
AssertSize(Game::MapTriggers, 24);
if (asset->trigger.models)
{
AssertSize(Game::TriggerModel, 8);
buffer->align(Utils::Stream::ALIGN_4);
buffer->saveArray(asset->trigger.models, asset->trigger.modelCount);
Utils::Stream::ClearPointer(&dest->trigger.models);
}
if (asset->trigger.hulls)
{
AssertSize(Game::TriggerHull, 32);
buffer->align(Utils::Stream::ALIGN_4);
buffer->saveArray(asset->trigger.hulls, asset->trigger.hullCount);
Utils::Stream::ClearPointer(&dest->trigger.hulls);
}
if (asset->trigger.slabs)
{
AssertSize(Game::TriggerSlab, 20);
buffer->align(Utils::Stream::ALIGN_4);
buffer->saveArray(asset->trigger.slabs, asset->trigger.slabCount);
Utils::Stream::ClearPointer(&dest->trigger.slabs);
}
@ -88,13 +87,16 @@ namespace Assets
Game::Stage* destStages = buffer->dest<Game::Stage>();
buffer->saveArray(asset->stages, asset->stageCount);
for (int i = 0; i < asset->stageCount; ++i)
for (char i = 0; i < asset->stageCount; ++i)
{
Game::Stage* destStage = &destStages[i];
Game::Stage* stage = &asset->stages[i];
buffer->saveString(stage->stageName);
Utils::Stream::ClearPointer(&destStage->stageName);
if (stage->stageName)
{
buffer->saveString(stage->stageName);
Utils::Stream::ClearPointer(&destStage->stageName);
}
}
Utils::Stream::ClearPointer(&dest->stages);

View File

@ -12,8 +12,6 @@ namespace Assets
Game::clipMap_t* dest = buffer->dest<Game::clipMap_t>();
buffer->save(asset);
dest->isInUse = 0;
buffer->pushBlock(Game::XFILE_BLOCK_VIRTUAL);
if (asset->name)

View File

@ -552,6 +552,12 @@ namespace Components
// Don't create default assets
Utils::Hook::Set<BYTE>(0x407BAA, 0xEB);
// Don't mark clip maps as 'in use'
Utils::Hook::Nop(0x405E07, 7);
// Don't mark assets
//Utils::Hook::Nop(0x5BB632, 5);
// Don't load sounds
//Utils::Hook::Set<BYTE>(0x413430, 0xC3);