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
+182
View File
@@ -0,0 +1,182 @@
#include "MW4Headers.hpp"
#include "Engine.hpp"
#include "MWTool.hpp"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
Engine__CreateMessage::ConstructCreateMessage(Script *script)
{
Check_Object(script);
//
//--------------
// Set up stream
//--------------
//
MemoryStream *message_stream = script->messageStream;
Check_Object(message_stream);
message_stream->AllocateBytes(sizeof(Engine__CreateMessage));
Subsystem__CreateMessage::ConstructCreateMessage(script);
Engine__CreateMessage *message =
Cast_Pointer(
Engine__CreateMessage*,
message_stream->GetPointer()
);
message->messageLength = sizeof(*message);
//
//---------------------------
// Point at the notation file
//---------------------------
//
Page *page = script->instancePage;
Check_Object(page);
Check_Object(Tool::Instance);
message->m_engineUpgrades = 0;
page->GetEntry("EngineUpgrades", &message->m_engineUpgrades);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
Engine__GameModel::ConstructGameModel(Script *script)
{
Check_Object(script);
//
//--------------
// Set up stream
//--------------
//
MemoryStream *model_stream = script->modelStream;
Check_Object(model_stream);
model_stream->AllocateBytes(sizeof(Engine__GameModel));
Subsystem__GameModel::ConstructGameModel(script);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
bool
Engine__GameModel::ReadAndVerify(
Engine__GameModel *model,
ModelAttributeEntry *attribute_entry,
const char *data,
char **error,
int error_buffer
)
{
Check_Object(attribute_entry);
bool result = false;
bool valid_data = (*data != '\0');
//
//----------------------------------------
//Read in the values from the data entered
//----------------------------------------
//
result =
BaseClass::ReadAndVerify(
model,
attribute_entry,
data,
error,
error_buffer
);
//
//---------------------------
//Verify all the model values
//---------------------------
//
switch(attribute_entry->attributeID)
{
case TonsPerUpgradeAttributeID:
{
if(!valid_data)
{
Scalar value = 1.0;
attribute_entry->SetValue(model, &value);
result = true;
}
if (model->m_tonsPerUpgrade <= 0.0f)
{
_snprintf(
*error,
error_buffer,
"{[GameData]TonsPerUpgrade=%f}: value must be > 0!",
model->m_tonsPerUpgrade
);
result = false;
}
break;
}
case MPSPerUpgradeAttributeID:
{
if(!valid_data)
{
Scalar value = 5.0f;
attribute_entry->SetValue(model, &value);
result = true;
}
if (model->m_mpsPerUpgrade <= 0.0f)
{
_snprintf(
*error,
error_buffer,
"{[GameData]MPSPerUpgrade=%f}: value must be > 0!",
model->m_mpsPerUpgrade
);
result = false;
}
break;
}
case NumHeatSinksAttributeID:
{
if(!valid_data)
{
int value = 10;
attribute_entry->SetValue(model, &value);
result = true;
}
if (model->m_numHeatSinks < 0)
{
_snprintf(
*error,
error_buffer,
"{[GameData]NumHeatSinks=%f}: value must be >= 0!",
model->m_numHeatSinks
);
result = false;
}
break;
}
case HeatSinkEfficiencyAttributeID:
{
if(!valid_data)
{
Scalar value = 1.0f;
attribute_entry->SetValue(model, &value);
result = true;
}
if (model->m_heatSinkEfficiency < 0)
{
_snprintf(
*error,
error_buffer,
"{[GameData]HeatSinkEfficiency=%f}: value must be >= 0.0!",
model->m_heatSinkEfficiency
);
result = false;
}
break;
}
}
return result;
}