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
+153
View File
@@ -0,0 +1,153 @@
#include "MW4Headers.hpp"
#include "MWTable.hpp"
#include <Adept\Resource.hpp>
//#############################################################################
//######################### MWTableEntry ################################
//#############################################################################
MWTableEntry::MWTableEntry(MemoryStream *stream) :
Plug(Plug::DefaultData)
{
Check_Pointer(stream);
*stream >> m_data;
*stream >> m_entryResourceID;
// *stream >> m_entryID;
m_entryID = -1;
*stream >> m_entryName;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
MWTableEntry::ConstructEntryStream(Note *note, MemoryStream *stream)
{
Check_Object(note);
Check_Pointer(stream);
const char *resource_name;
note->GetEntry(&resource_name);
Resource entry_resource(resource_name);
ResourceID entry_id = ResourceID::Null;
if(entry_resource.DoesResourceExist())
{
entry_id = entry_resource.GetResourceID();
}
MString data = resource_name;
*stream << data;
*stream << entry_resource.GetResourceID();
MString entry_name = note->GetName();
*stream << entry_name;
}
//#############################################################################
//############################ MWTable ##################################
//#############################################################################
MWTable::MWTable(Stuff::MemoryStream *stream) :
Plug(Plug::DefaultData),
m_table(NULL, true)
{
Check_Pointer(stream);
while(stream->GetBytesRemaining() > 0)
{
MWTableEntry *entry;
entry = new MWTableEntry(stream);
Check_Object(entry);
m_table.AddValue(entry, entry->GetEntryName());
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
MWTable::ConstructTableStream(NotationFile *note_file, MemoryStream *stream)
{
Check_Object(note_file);
Check_Pointer(stream);
Page *page = note_file->GetPage("Table");
ChainIteratorOf<Note*> *note_iterator = page->MakeNoteIterator();
Check_Object(note_iterator);
note_iterator->First();
Note *note;
while((note = note_iterator->ReadAndNext()) != NULL)
{
Check_Object(note);
MWTableEntry::ConstructEntryStream(note, stream);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
MWTableEntry*
MWTable::FindEntry(MString entry_name)
{
//Ok we can't just use the find since we have to perserve case in some of the tables
Check_Object(this);
SortedChainIteratorOf<MWTableEntry *, MString> iterator(&m_table);
MString table_string = iterator.GetValue();
while(iterator.GetCurrent())
{
if(!_stricmp((const char *)entry_name, (const char *)table_string))
return iterator.GetCurrent();
iterator.Next();
if(iterator.GetCurrent())
table_string = iterator.GetValue();
}
return NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
MWTableEntry*
MWTable::FindEntryFromDataString(Stuff::MString data)
{
Check_Object(this);
SortedChainIteratorOf<MWTableEntry *, MString> iterator(&m_table);
MWTableEntry *table_entry;
while((table_entry = iterator.ReadAndNext()) != NULL)
{
Check_Object(table_entry);
if(!_stricmp((const char *)table_entry->GetData(), (const char *)data))
return table_entry;
}
return NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
int
MWTable::FindIndexFromDataString(Stuff::MString data)
{
Check_Object(this);
SortedChainIteratorOf<MWTableEntry *, MString> iterator(&m_table);
MWTableEntry *table_entry;
int count = 0;
while((table_entry = iterator.ReadAndNext()) != NULL)
{
Check_Object(table_entry);
if(!_stricmp((const char *)table_entry->GetData(), (const char *)data))
return count;
count++;
}
return -1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
MWTable::~MWTable()
{
Check_Object(this);
m_table.DeletePlugs();
}