Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,379 @@
//===========================================================================//
// File: RESOURCE_test.CPP //
// Project: MUNGA Brick: Resource Manager //
// Contents: Implementation Details of resource managment //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 01/20/95 GSY Initial coding. //
// 01/20/95 GAH Added MUNGA style comments and assertions. //
// 06/14/96 GAH Added preload, referential resource type, the ability to //
// load resources from separate resource files. //
//---------------------------------------------------------------------------//
// Copyright (C) 1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide. //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL. //
//===========================================================================//
#include "AdeptHeaders.hpp"
//
//#############################################################################
//#############################################################################
//
#if 0
static int
ResourceManager_RandInt(int x)
{
return Random::GetLessThan(x);
}
static MString
ResourceManager_GenerateName(int count)
{
char buffer[256];
return "resource" + MString(_itoa(count, buffer, 10));
}
static void
ResourceManager_GenerateStream(DynamicMemoryStream *stream, int count)
{
size_t resource_len = (count % (1024*1024/4)) + 1;
Check_Object(stream);
for (int i = 0; i < resource_len; i++)
{
stream->WriteBytes(&i, sizeof(i));
}
}
static void
ResourceManager_CompareStream(
DynamicMemoryStream *stream1,
DynamicMemoryStream *stream2
)
{
Check_Object(stream1);
Check_Object(stream2);
stream1->Rewind();
stream2->Rewind();
Verify(
stream1->GetStreamLength() ==
stream2->GetStreamLength()
);
Verify(
memcmp(
stream1->GetPointer(),
stream2->GetPointer(),
stream1->GetStreamLength()
) == 0
);
}
#endif
//
//#############################################################################
//#############################################################################
//
void
ResourceManager::TestClass()
{
Check_Object(ResourceManager::Instance);
STOP(("Not implemented"));
#if 0
//
// Open a 2 test files
//
ResourceManager::Instance->OpenResourceFile(
"Content\\TestResources1",
0,
false,
true
);
//
// Generate test resources
//
int i, number_of_resources = 1000;
for (i = 0; i < number_of_resources; i++)
{
DynamicMemoryStream resource_stream;
ResourceManager_GenerateStream(&resource_stream, i);
ResourceDescription *resource_description;
resource_description = ResourceManager::Instance->AddResource(
ResourceManager_GenerateName(i),
i % 10,
&resource_stream,
(i % 5 == 0) ?
ResourceDescription::Preload :
ResourceDescription::NoAttributes
);
Check_Object(resource_description);
}
Verify(ResourceManager::Instance->GetResourceCount() == number_of_resources);
//
// Verify that the resources can be retrieved correctly, and match
// the ones generated
//
for (i = 0; i < number_of_resources; i++)
{
ResourceDescription *resource_description;
int j = ResourceManager_RandInt(number_of_resources);
MString resource_name = ResourceManager_GenerateName(j);
ResourceType type = j % 10;
DynamicMemoryStream resource_stream;
ResourceManager_GenerateStream(&resource_stream, j);
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
Check_Object(resource_description);
resource_description->Lock();
Verify(resource_description->recordName == resource_name);
Verify(resource_description->recordType == type);
ResourceManager_CompareStream(
&resource_stream,
resource_description->recordData
);
resource_description->Unlock();
resource_description = ResourceManager::Instance->GetResource(
resource_description->resourceID
);
Check_Object(resource_description);
resource_description->Lock();
Verify(resource_description->recordName == resource_name);
Verify(resource_description->recordType == type);
ResourceManager_CompareStream(
&resource_stream,
resource_description->recordData
);
resource_description->Unlock();
}
//
// Sequence through all records
//
ResourceManager::Instance->First();
for (i = 0; i < number_of_resources; i++)
{
ResourceDescription *resource_description;
resource_description = ResourceManager::Instance->ReadAndNext();
Check_Object(resource_description);
}
//
// Delete a set of records that fit a specific distribution
//
for (i = 0; i < number_of_resources; i++)
{
if (i % 10 == 0)
{
ResourceDescription *resource_description;
MString resource_name = ResourceManager_GenerateName(i);
ResourceType type = i % 10;
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
Check_Object(resource_description);
ResourceManager::Instance->DeleteResource(resource_description);
}
}
//
// Verify that those records do not show up
//
for (i = 0; i < number_of_resources; i++)
{
if (i % 10 == 0)
{
ResourceDescription *resource_description;
MString resource_name = ResourceManager_GenerateName(i);
ResourceType type = i % 10;
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
Verify(resource_description == NULL);
}
}
//
// Run stress test
//
const int iterations = 1000;
for (i = number_of_resources; i < number_of_resources+iterations; i++)
{
switch (ResourceManager_RandInt(6))
{
case 0:
{
ResourceDescription *resource_description;
DynamicMemoryStream resource_stream;
ResourceManager_GenerateStream(&resource_stream, i);
resource_description = ResourceManager::Instance->AddResource(
ResourceManager_GenerateName(i),
i % 10,
&resource_stream,
(i % 5 == 0) ?
ResourceDescription::Preload :
ResourceDescription::NoAttributes
);
Check_Object(resource_description);
}
break;
case 1:
{
ResourceDescription *resource_description, *resource_description2;
int j = ResourceManager_RandInt(ResourceManager::Instance->GetResourceCount());
MString resource_name = ResourceManager_GenerateName(j);
ResourceType type = j % 10;
DynamicMemoryStream resource_stream;
ResourceManager_GenerateStream(&resource_stream, j);
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
if (resource_description != NULL)
{
Check_Object(resource_description);
resource_description->Lock();
Verify(resource_description->recordName == resource_name);
Verify(resource_description->recordType == type);
ResourceManager_CompareStream(
&resource_stream,
resource_description->recordData
);
// resource_description->Unlock();
resource_description2 = ResourceManager::Instance->GetResource(
resource_description->resourceID
);
Verify(resource_description2 == resource_description);
Verify(resource_description->IsLocked());
}
}
break;
case 2:
{
ResourceDescription *resource_description;
int j = ResourceManager_RandInt(i);
MString resource_name = ResourceManager_GenerateName(j);
ResourceType type = j % 10;
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
if (
resource_description != NULL &&
resource_description->IsLocked()
)
{
Check_Object(resource_description);
resource_description->Unlock();
}
}
break;
case 3:
{
ResourceDescription *resource_description;
int j = ResourceManager_RandInt(i);
MString resource_name = ResourceManager_GenerateName(j);
ResourceType type = j % 10;
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
if (resource_description != NULL)
{
PlugLocker locker(resource_description);
}
}
break;
case 4:
{
ResourceDescription *resource_description;
int j = ResourceManager_RandInt(i);
MString resource_name = ResourceManager_GenerateName(j);
ResourceType type = j % 10;
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
if (resource_description != NULL)
{
resource_description->Save();
}
}
break;
case 5:
{
ResourceDescription *resource_description;
int j = ResourceManager_RandInt(i);
MString resource_name = ResourceManager_GenerateName(j);
ResourceType type = j % 10;
resource_description = ResourceManager::Instance->GetResource(
resource_name,
type
);
if (
resource_description != NULL &&
!resource_description->IsLocked()
)
{
resource_description->Delete();
}
}
break;
}
}
//
// Exercise preload routines
//
ResourceManager::Instance->BuildPreloadList();
ResourceManager::Instance->Preload();
//
// Close
//
ResourceManager::Instance->Close(true, true);
#endif
}