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.
103 lines
3.4 KiB
C++
103 lines
3.4 KiB
C++
//===========================================================================//
|
|
// File: Player_Tool.cpp //
|
|
//---------------------------------------------------------------------------//
|
|
// Date Who Modification //
|
|
// -------- --- ---------------------------------------------------------- //
|
|
// 03/08/99 DPB Created Files //
|
|
//---------------------------------------------------------------------------//
|
|
// Copyright (C) 1998, Fasa Interactive //
|
|
// All Rights reserved worldwide //
|
|
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
|
|
//===========================================================================//
|
|
|
|
#include "AdeptHeaders.hpp"
|
|
|
|
#include "Player.hpp"
|
|
#include "Tool.hpp"
|
|
#include "Interface.hpp"
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void
|
|
Player__CreateMessage::ConstructCreateMessage(Script *script)
|
|
{
|
|
Check_Object(script);
|
|
#if defined(_ARMOR)
|
|
int stack_level = Tool::Instance->GetStackLevel();
|
|
#endif
|
|
|
|
//
|
|
//--------------
|
|
// Set up stream
|
|
//--------------
|
|
//
|
|
MemoryStream *message_stream = script->messageStream;
|
|
Check_Object(message_stream);
|
|
message_stream->AllocateBytes(sizeof(Player__CreateMessage));
|
|
Driver::CreateMessage::ConstructCreateMessage(script);
|
|
Verify(stack_level == Tool::Instance->GetStackLevel());
|
|
Player__CreateMessage *message =
|
|
Cast_Pointer(
|
|
Player__CreateMessage*,
|
|
message_stream->GetPointer()
|
|
);
|
|
message->messageLength = sizeof(*message);
|
|
|
|
//
|
|
//---------------------------------------------------------------
|
|
// Point at the notation file and make other files relative to it
|
|
//---------------------------------------------------------------
|
|
//
|
|
Page *page = script->instancePage;
|
|
Check_Object(page);
|
|
|
|
//
|
|
//-----------------------------------------------------------------
|
|
// Create the map instance and stuff its resource ID in the message
|
|
//-----------------------------------------------------------------
|
|
//
|
|
{
|
|
NotationFile interface_file;
|
|
page->GetEntry("Interface", &interface_file, true);
|
|
Resource interface_instance;
|
|
Check_Object(Tool::Instance);
|
|
ReplicatorID local_base = ReplicatorID::Null;
|
|
Tool::Instance->ConstructCreateMessage(
|
|
&interface_instance,
|
|
&interface_file,
|
|
&local_base
|
|
);
|
|
*script->baseID += local_base;
|
|
message->interfaceResourceID = interface_instance.GetResourceID();
|
|
}
|
|
|
|
//
|
|
//-----------------------------------------------------------------
|
|
// Create the map instance and stuff its resource ID in the message
|
|
//-----------------------------------------------------------------
|
|
//
|
|
{
|
|
NotationFile vehicle_file;
|
|
page->GetEntry("Vehicle", &vehicle_file, true);
|
|
Resource vehicle_instance;
|
|
ReplicatorID local_base = ReplicatorID::Null;
|
|
Check_Object(Tool::Instance);
|
|
Tool::Instance->ConstructCreateMessage(
|
|
&vehicle_instance,
|
|
&vehicle_file,
|
|
&local_base
|
|
);
|
|
*script->baseID += local_base;
|
|
message->vehicleResourceID = vehicle_instance.GetResourceID();
|
|
}
|
|
|
|
message->dropZone = NameTable::NullObjectID;
|
|
|
|
message->teamNumber = 0;
|
|
message->skinPrefix = 0;
|
|
message->teamDecal = 0;
|
|
message->pilotDecal = 0;
|
|
|
|
Verify(stack_level == Tool::Instance->GetStackLevel());
|
|
}
|