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,54 @@
//===========================================================================//
// File: cmpnnt.cc //
// Project: MUNGA Brick: Entity //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 12/14/94 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#include "AdeptHeaders.hpp"
#include "Adder.hpp"
//#############################################################################
//########################## AdderChannel ##############################3
//#############################################################################
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
AdderOf<Scalar>::InitializeClass()
{
Verify(!DefaultData);
DefaultData =
new ClassData(
AdderOfScalarClassID,
"Adept::AdderOfScalar",
ChannelOf<Scalar>::DefaultData,
0,
NULL
);
Register_Object(DefaultData);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
AdderOf<Scalar>::Execute()
{
Check_Object(this);
channelOutput = 0.0f;
for (int i=0; i<numberOfInputs; ++i)
{
ChannelOf<Scalar> *channel = inputChannels[i];
Check_Object(channel);
channelOutput += channel->ReadChannel();
}
NotifyDependantsOfChange();
}
+206
View File
@@ -0,0 +1,206 @@
//===========================================================================//
// File: audcmp.hpp //
// Project: MUNGA Brick: Audio manager //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 01/30/95 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
#include "Adept.hpp"
#include "Channel.hpp"
#include "ComponentWeb.hpp"
namespace Adept {
//##########################################################################
//####################### AdderChannel ##########################
//##########################################################################
template <class T> class AdderOf:
public ChannelOf<T>
{
public:
static void
InitializeClass();
static void
TerminateClass();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Constructor/Destructor
//
public:
~AdderOf();
static AdderOf<T>*
Create(
MemoryStream *stream,
ComponentWeb *owning_web
);
protected:
AdderOf(
ClassData *class_data,
MemoryStream *stream,
ComponentWeb *owning_web
);
void
SkipStreamData(MemoryStream *stream);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class data
//
public:
static ClassData
*DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Component execution
//
public:
void
ChannelChanged(Channel *channel);
void
Execute();
protected:
int
numberOfInputs;
ChannelOf<T>
**inputChannels;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Tool Support
//
public:
static ClassData*
CreateFactoryRequest(FactoryRequestParameters *parameters);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Test support
//
public:
void
TestInstance();
};
//
// Class Data Support
//
template <class T> ChannelOf<T>::ClassData*
AdderOf<T>::DefaultData = NULL;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> void
AdderOf<T>::TerminateClass()
{
Unregister_Object(DefaultData);
delete DefaultData;
DefaultData = NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> AdderOf<T>::~AdderOf()
{
Unregister_Pointer(inputChannels);
delete[] inputChannels;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> AdderOf<T>::AdderOf(
ClassData *class_data,
MemoryStream *stream,
ComponentWeb *owning_web
):
ChannelOf<T>(class_data, stream, owning_web)
{
*stream >> numberOfInputs;
Verify(static_cast<unsigned>(numberOfInputs) > 0);
inputChannels = new ChannelOf<T>*[numberOfInputs];
Register_Pointer(inputChannels);
Check_Object(owning_web);
ComponentID component_id;
component_id.scriptResourceID = owning_web->GetScriptResourceID();
for (int i=0; i<numberOfInputs; ++i)
{
*stream >> component_id.componentNumber;
Component *component = owning_web->FindComponent(component_id);
Check_Object(component);
ChannelOf<T>* channel = Cast_Object(ChannelOf<T>*, component);
inputChannels[i] = channel;
channel->AddDependant(this);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> void
AdderOf<T>::SkipStreamData(MemoryStream *stream)
{
Check_Object(this);
Check_Object(stream);
int inputs;
*stream >> inputs;
Verify(inputs == numberOfInputs);
stream->AdvancePointer(inputs*sizeof(componentID.componentNumber));
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> AdderOf<T>*
AdderOf<T>::Create(
MemoryStream *stream,
ComponentWeb *owning_web
)
{
Check_Object(stream);
Check_Object(owning_web);
Component *component = DoesComponentExist(stream, owning_web);
AdderOf<T> *adder;
if (component)
{
adder = Cast_Object(AdderOf<T>*, component);
adder->SkipStreamData(stream);
}
else
{
adder = new AdderOf<T>(DefaultData, stream, owning_web);
Register_Object(adder);
}
return adder;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> void
AdderOf<T>::ChannelChanged(Channel *channel)
{
Check_Object(this);
Check_Object(channel);
ComponentWeb *web = GetComponentWeb();
Check_Object(web);
web->AddTemporaryWatcher(this);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
template <class T> void
AdderOf<T>::TestInstance()
{
Verify(IsDerivedFrom(DefaultData));
}
}
@@ -0,0 +1,33 @@
#include "AdeptHeaders.hpp"
#include "Adder.hpp"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
AdderOf<Scalar>::ClassData*
AdderOf<Scalar>::CreateFactoryRequest(FactoryRequestParameters *parameters)
{
Check_Object(parameters);
//
//-------------------------------------------------------------------------
// Allocate enough room for what we need to write out, then call our parent
//-------------------------------------------------------------------------
//
MemoryStream *component_stream = parameters->m_stream;
Check_Object(component_stream);
component_stream->AllocateBytes(sizeof(AdderOf<Scalar>));
bool result =
ChannelOf<Scalar>::CreateFactoryRequest(parameters) != NULL;
//
//-------------------
// Read in the inputs
//-------------------
//
if (!ReadInputsFromPage(parameters, ChannelOf<Scalar>::DefaultData))
result = false;
Check_Object(DefaultData);
return (result) ? DefaultData : NULL;
}
+580
View File
@@ -0,0 +1,580 @@
#include "AdeptHeaders.hpp"
#include "GlobalPointerManager.hpp"
#include "VideoHeaders.hpp"
#include "EventStatistics.hpp"
#include "Interface.hpp"
#include "Mission.hpp"
#include "Connection.hpp"
#include "Controls.hpp"
#include "Joystick.hpp"
#include "RendererManager.hpp"
#include "Mission.hpp"
#include "Matcher.hpp"
#include "VideoComponentWeb.hpp"
#include "EntityManager.hpp"
#include "Effect.hpp"
#include "Map.hpp"
#include "Application.hpp"
#include "ApplicationTask.hpp"
#include "AttributeWatcher.hpp"
#include "Driver.hpp"
#include "Player.hpp"
#include "DamageObject.hpp"
#include "DropZone.hpp"
#include "AudioRenderer.hpp"
#include "GUIStatBar.hpp"
#include "NameTable.hpp"
#include "Zone.hpp"
#include "Tile.hpp"
#include "CollisionGrid.hpp"
#include "CollisionVolume.hpp"
#include "LightManager.hpp"
#include "LightComponent.hpp"
#include "SpatializedCommand.hpp"
#include "SpatializedChannel.hpp"
#include "AudioComponentWeb.hpp"
#include "AudioFXComponent.hpp"
#include "EarComponent.hpp"
HGOSHEAP
Adept::g_Heap = NULL,
Adept::g_LibraryHeap = NULL;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
static void __stdcall
Save_Scene()
{
//
//----------------------
// Get the scene pointer
//----------------------
//
Check_Object(VideoRenderer::Instance);
Element *root = VideoRenderer::Instance->GetSceneRoot();
Check_Object(root);
//
//--------------------------
// Open the file and save it
//--------------------------
//
gos_PushCurrentHeap(ElementRenderer::g_Heap);
Check_Object(Stuff::FileStreamManager::Instance);
Stuff::FileStream element_stream("Capture.erf", Stuff::FileStream::WriteOnly);
ElementRenderer::WriteERFVersion(&element_stream);
root->Save(&element_stream);
gos_PopCurrentHeap();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
static void __stdcall
Spew_Resources()
{
//
//----------------------
// Get the scene pointer
//----------------------
//
extern volatile bool SpewSilence;
bool old_silence = SpewSilence;
SpewSilence = false;
Check_Object(ResourceManager::Instance);
ResourceManager::Instance->SpewLoadedResources();
SpewSilence = old_silence;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
Adept::InitializeClasses(NotationFile *startup_ini)
{
Verify(FirstFreeAdeptClassID <= LastAdeptClassID);
Verify(!g_LibraryHeap);
g_LibraryHeap = gos_CreateMemoryHeap("Adept(All)");
Check_Pointer(g_LibraryHeap);
Verify(!g_Heap);
g_Heap = gos_CreateMemoryHeap("Adept", 0, g_LibraryHeap);
Check_Pointer(g_Heap);
gos_PushCurrentHeap(g_Heap);
if (startup_ini)
{
Check_Object(startup_ini);
Page *page = startup_ini->FindPage("Graphics Options");
if (page)
{
Check_Object(page);
page->GetEntry("ScreenWidth", &Application::s_ScreenWidth);
page->GetEntry("ScreenHeight", &Application::s_ScreenHeight);
}
}
#if !(defined(NO_STATS) && defined(NO_TIMERS))
StatisticFormat("");
StatisticFormat("Adept");
StatisticFormat("=====");
StatisticFormat("");
#endif
GlobalPointers::InitializeClass();
//
//-------------------------------------------------
// First, Initialize all the non registered classes
//-------------------------------------------------
//
CollisionVolume::InitializeClass();
//
//----------------------------------------------
// Now, initialize all of the registered classes
//----------------------------------------------
//
StateEngine::InitializeClass();
Receiver::InitializeClass();
Event::InitializeClass();
NetworkEvent::InitializeClass();
GeneralEventQueue::InitializeClass();
EventQueue::InitializeClass();
EventStatisticsManager::InitializeClass();
NameTable::InitializeClass();
//
//---------------
// basic entities
//---------------
//
Replicator::InitializeClass();
Entity::ExecutionStateEngine::InitializeClass();
Entity::InitializeClass();
Mover::ExecutionStateEngine::InitializeClass();
Mover::InitializeClass();
Map::InitializeClass(startup_ini);
Interface::InitializeClass();
Mission::InitializeClass();
Effect::ExecutionStateEngine::InitializeClass();
Effect::InitializeClass();
Driver::InitializeClass();
Player::InitializeClass();
DamageObject::InitializeClass();
DropZone::InitializeClass();
//
//---------------
// basic managers
//---------------
//
InBox::InitializeClass();
Connection::InitializeClass();
Network::InitializeClass();
EntityManager::InitializeClass();
ControlsInstance::InitializeClass();
DirectControlsInstance::InitializeClass();
EventControlsInstance::InitializeClass();
ControlsMappingGroup::InitializeClass();
ControlsManager::InitializeClass();
Renderer::InitializeClass();
RendererManager::InitializeClass();
VideoRenderer::InitializeClass(startup_ini);
AudioRenderer::InitializeClass();
Application::InitializeClass();
ApplicationStateEngine::InitializeClass();
ApplicationTask::InitializeClass();
//
//-----------
// components
//-----------
//
Component::InitializeClass();
ComponentWeb::InitializeClass();
EntityComponentWeb::InitializeClass();
RendererComponentWeb::InitializeClass();
VideoComponentWeb::InitializeClass();
Channel::InitializeClass();
ChannelOf<int>::InitializeClass();
AttributeWatcherOf<int, IntClassID>::InitializeClass();
MatcherOf<int>::InitializeClass();
VideoComponent::InitializeClass();
GroupComponent::InitializeClass();
ShapeComponent::InitializeClass();
CameraComponent::InitializeClass();
LightComponent::InitializeClass();
LODComponent::InitializeClass();
SwitchComponent::InitializeClass();
ScalableShapeComponent::InitializeClass();
gosFXComponent::InitializeClass();
BeamComponent::InitializeClass();
ConeComponent::InitializeClass();
GUIObject::InitializeClass();
GUITextObject::InitializeClass();
GUITextManager::InitializeClass();
GUIStatBar::InitializeClass();
//
//-----------------
// Audio components
//-----------------
//
AudioSample::InitializeClass();
AudioChannel::InitializeClass();
AudioCommand::InitializeClass();
SpatializedChannel::InitializeClass();
SpatializedCommand::InitializeClass();
AudioComponentWeb::InitializeClass();
EarComponent::InitializeClass();
AudioFXComponent::InitializeClass(startup_ini);
//
//------------------------
// Setup collision classes
//------------------------
//
Zone::InitializeClass();
Tile::InitializeClass();
CollisionGrid::InitializeClass();
InternalDamageObject::InitializeClass();
TiledLightManager::InitializeClass(startup_ini);
SlidingShapeComponent::InitializeClass();
MultiLODComponent::InitializeClass();
//
//---------------
// Setup the menu
//---------------
//
AddDebuggerMenuItem("Libraries\\Adept\\Save Scene", 0, Save_Scene, 0 );
AddDebuggerMenuItem("Libraries\\Adept\\Spew Loaded Resources", 0, Spew_Resources, 0);
gos_PopCurrentHeap();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
Adept::TerminateClasses(NotationFile *startup_ini)
{
if (startup_ini)
{
Check_Object(startup_ini);
Page *page = startup_ini->SetPage("Graphics Options");
Check_Object(page);
page->SetEntry("ScreenWidth", Application::s_ScreenWidth);
page->SetEntry("ScreenHeight", Application::s_ScreenHeight);
}
MultiLODComponent::TerminateClass();
SlidingShapeComponent::TerminateClass();
TiledLightManager::TerminateClass(startup_ini);
InternalDamageObject::TerminateClass();
CollisionGrid::TerminateClass();
Tile::TerminateClass();
Zone::TerminateClass();
//
//-----------------
// Audio components
//-----------------
//
AudioFXComponent::TerminateClass(startup_ini);
EarComponent::TerminateClass();
AudioComponentWeb::TerminateClass();
SpatializedCommand::TerminateClass();
SpatializedChannel::TerminateClass();
AudioCommand::TerminateClass();
AudioChannel::TerminateClass();
AudioSample::TerminateClass();
//
//-----------
// components
//-----------
//
GUIStatBar::TerminateClass();
GUITextManager::TerminateClass();
GUITextObject::TerminateClass();
GUIObject::TerminateClass();
ConeComponent::TerminateClass();
BeamComponent::TerminateClass();
gosFXComponent::TerminateClass();
ScalableShapeComponent::TerminateClass();
SwitchComponent::TerminateClass();
LODComponent::TerminateClass();
LightComponent::TerminateClass();
CameraComponent::TerminateClass();
ShapeComponent::TerminateClass();
GroupComponent::TerminateClass();
VideoComponent::TerminateClass();
MatcherOf<int>::TerminateClass();
AttributeWatcherOf<int, IntClassID>::TerminateClass();
ChannelOf<int>::TerminateClass();
Channel::TerminateClass();
VideoComponentWeb::TerminateClass();
RendererComponentWeb::TerminateClass();
EntityComponentWeb::TerminateClass();
ComponentWeb::TerminateClass();
Component::TerminateClass();
//
//---------------
// basic managers
//---------------
//
ApplicationTask::TerminateClass();
ApplicationStateEngine::TerminateClass();
Application::TerminateClass();
AudioRenderer::TerminateClass();
VideoRenderer::TerminateClass(startup_ini);
RendererManager::TerminateClass();
Renderer::TerminateClass();
ControlsManager::TerminateClass();
ControlsMappingGroup::TerminateClass();
EventControlsInstance::TerminateClass();
DirectControlsInstance::TerminateClass();
ControlsInstance::TerminateClass();
EntityManager::TerminateClass();
Network::TerminateClass();
Connection::TerminateClass();
InBox::TerminateClass();
//
//---------------
// basic entities
//---------------
//
DropZone::TerminateClass();
DamageObject::TerminateClass();
Player::TerminateClass();
Driver::TerminateClass();
Effect::TerminateClass();
Effect::ExecutionStateEngine::TerminateClass();
Mission::TerminateClass();
Interface::TerminateClass();
Map::TerminateClass(startup_ini);
Mover::TerminateClass();
Mover::ExecutionStateEngine::TerminateClass();
Entity::TerminateClass();
Entity::ExecutionStateEngine::TerminateClass();
Replicator::TerminateClass();
NameTable::TerminateClass();
EventStatisticsManager::TerminateClass();
EventQueue::TerminateClass();
GeneralEventQueue::TerminateClass();
NetworkEvent::TerminateClass();
Event::TerminateClass();
Receiver::TerminateClass();
StateEngine::TerminateClass();
//
//-----------------------------------------------
// Then, terminate all the non registered classes
//-----------------------------------------------
//
CollisionVolume::TerminateClass();
GlobalPointers::TerminateClass();
Check_Pointer(g_Heap);
gos_DestroyMemoryHeap(g_Heap);
g_Heap = NULL;
Check_Pointer(g_LibraryHeap);
gos_DestroyMemoryHeap(g_LibraryHeap);
g_LibraryHeap = NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
int
Adept::MaterialTypeTextToAscii(const char *mode_name)
{
if(!_stricmp(mode_name, "None"))
return NoMaterial;
else if(!_stricmp(mode_name, "Grass"))
return GrassMaterial;
else if(!_stricmp(mode_name, "Water"))
return WaterMaterial;
else if(!_stricmp(mode_name, "Concrete"))
return ConcreteMaterial;
else if(!_stricmp(mode_name, "GreyDirt"))
return GreyDirtMaterial;
else if(!_stricmp(mode_name, "BrownDirt"))
return BrownDirtMaterial;
else if(!_stricmp(mode_name, "Rock"))
return RockMaterial;
else if(!_stricmp(mode_name, "DarkConcrete"))
return DarkConcreteMaterial;
else if(!_stricmp(mode_name, "DarkGreyDirt"))
return DarkGreyDirtMaterial;
else if(!_stricmp(mode_name, "DarkBrownDirt"))
return DarkBrownDirtMaterial;
else if(!_stricmp(mode_name, "DarkRock"))
return DarkRockMaterial;
else if(!_stricmp(mode_name, "Blacktop"))
return BlacktopMaterial;
else if(!_stricmp(mode_name, "Snow"))
return SnowMaterial;
else if(!_stricmp(mode_name, "Wood"))
return WoodMaterial;
else if(!_stricmp(mode_name, "Lava"))
return LavaMaterial;
else if(!_stricmp(mode_name, "Glass"))
return GlassMaterial;
else if(!_stricmp(mode_name, "Steel"))
return SteelMaterial;
else if(!_stricmp(mode_name, "Us"))
return UsMaterial;
else if(!_stricmp(mode_name, "Them"))
return ThemMaterial;
// MSL 5.03 Lava
else if (!_stricmp(mode_name, "LightMineral"))
return LightMineralMaterial;
else if (!_stricmp(mode_name, "DarkMineral"))
return DarkMineralMaterial;
else if (!_stricmp(mode_name,"Ash"))
return AshMaterial;
else if (!_stricmp(mode_name,"CrackedLava"))
return CrackedLavaMaterial;
else if (!_stricmp(mode_name,"OpenLava"))
return OpenLavaMaterial;
//
// These are obsolete names, still parsed for compatability
//
else if(!_stricmp(mode_name, "Dirt"))
return BrownDirtMaterial;
else if(!_stricmp(mode_name, "Vehicle"))
return SteelMaterial;
else if(!_stricmp(mode_name, "Brick"))
return ConcreteMaterial;
else if(!_stricmp(mode_name, "Tree"))
return WoodMaterial;
else if(!_stricmp(mode_name, "Swamp"))
return GrassMaterial;
else if(!_stricmp(mode_name, "Rough"))
return GrassMaterial;
else if(!_stricmp(mode_name, "Snow"))
return SnowMaterial;
else if(!_stricmp(mode_name, "Underbrush"))
return GrassMaterial;
else if(!_stricmp(mode_name, "ShallowWater"))
return WaterMaterial;
else if(!_stricmp(mode_name, "MidWater"))
return WaterMaterial;
else if(!_stricmp(mode_name, "Desert"))
return BrownDirtMaterial;
else if(!_stricmp(mode_name, "FlatSwamp"))
return GrassMaterial;
else if(!_stricmp(mode_name, "ThickSwamp"))
return GrassMaterial;
else if(!_stricmp(mode_name, "RedRock"))
return RockMaterial;
else if(!_stricmp(mode_name, "DarkDirt"))
return DarkBrownDirtMaterial;
else if(!_stricmp(mode_name, "DarkDesert"))
return DarkBrownDirtMaterial;
else if(!_stricmp(mode_name, "DarkRedRock"))
return DarkRockMaterial;
else
{
STOP(("Unknown Material Type: %s ", mode_name));
return 0;
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
const char *
Adept::MaterialTypeAsciiToText(int material)
{
switch(material)
{
case NoMaterial:
return "None";
case GrassMaterial:
return "Grass";
case WaterMaterial:
return "Water";
case ConcreteMaterial:
return "Concrete";
case GreyDirtMaterial:
return "GreyDirt";
case BrownDirtMaterial:
return "BrownDirt";
case RockMaterial:
return "Rock";
case DarkConcreteMaterial:
return "DarkConcrete";
case DarkGreyDirtMaterial:
return "DarkGreyDirt";
case DarkBrownDirtMaterial:
return "DarkBrownDirt";
case DarkRockMaterial:
return "DarkRock";
case BlacktopMaterial:
return "Blacktop";
case SnowMaterial:
return "Snow";
case WoodMaterial:
return "Wood";
case LavaMaterial:
return "Lava";
case GlassMaterial:
return "Glass";
case SteelMaterial:
return "Steel";
case UsMaterial:
return "Us";
case ThemMaterial:
return "Them";
// MSL 5.03 Lava
case LightMineralMaterial:
return "LightMineral";
case DarkMineralMaterial:
return "DarkMineral";
case AshMaterial:
return "Ash";
case CrackedLavaMaterial:
return "CrackedLava";
case OpenLavaMaterial:
return "OpenLava";
}
return "Bad Value";
}
File diff suppressed because it is too large Load Diff
+307
View File
@@ -0,0 +1,307 @@
//===========================================================================//
// File: munga.hpp //
// Project: Adept Brick: ??? //
// Contents: ??? //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 00/00/00 XXX Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1995-1996, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
#include <ElementRenderer\ElementRenderer.hpp>
#include "GlobalPointerManager.hpp"
namespace Adept {
//
//--------------
// Adept classes
//--------------
//
enum
{
//
//---------------------
// Registered class IDs
//---------------------
//
StateEngineClassID = Stuff::FirstAdeptClassID,
ReceiverClassID,
EventClassID,
NetworkEventClassID,
GeneralEventQueueClassID,
EventQueueClassID,
EventStatisticsManagerClassID,
//
//---------------
// basic entities
//---------------
//
ReplicatorClassID,
Entity__ExecutionStateEngineClassID,
EntityClassID,
Mover__ExecutionStateEngineClassID,
MoverClassID,
InterfaceClassID,
ScoreKeeperClassID,
DriverClassID,
PlayerClassID,
GUIEntityClassID,
GUITextEntityClassID,
Effect__ExecutionStateEngineClassID,
EffectClassID,
DamageObjectClassID,
DropZoneClassID,
//
//---------------
// basic managers
//---------------
//
InBoxClassID,
NetworkClassID,
ConnectionClassID,
EntityManagerClassID,
EntityGroupClassID,
ControlsInstanceClassID,
DirectControlsInstanceClassID,
EventControlsInstanceClassID,
ControlsMappingGroupClassID,
ControlsManagerClassID,
EasterEggClassID,
EasterEggManagerClassID,
RendererClassID,
RendererManagerClassID,
AudioRendererClassID,
ScreenPolyManagerClassID,
MissionClassID,
MapClassID,
ApplicationStateEngineClassID,
ApplicationClassID,
ApplicationTaskClassID,
//
//-----------
// components
//-----------
//
ComponentClassID,
EntityComponentWebClassID,
RendererComponentWebClassID,
ComponentWebClassID,
ChannelClassID,
ChannelOfScalarClassID,
ChannelOfIntClassID,
ChannelOfRadianClassID,
ChannelOfVector3DClassID,
ChannelOfPoint3DClassID,
ChannelOfNormal3DClassID,
ChannelOfUnitQuaternionClassID,
ChannelOfEulerAnglesClassID,
ChannelOfMotion3DClassID,
ChannelOfOrigin3DClassID,
ChannelOfLinearMatrix4DClassID,
AttributeWatcherOfScalarClassID,
AttributeWatcherOfIntClassID,
AttributeWatcherOfRadianClassID,
AttributeWatcherOfVector3DClassID,
AttributeWatcherOfPoint3DClassID,
AttributeWatcherOfNormal3DClassID,
AttributeWatcherOfUnitQuaternionClassID,
AttributeWatcherOfEulerAnglesClassID,
AttributeWatcherOfMotion3DClassID,
AttributeWatcherOfOrigin3DClassID,
AttributeWatcherOfLinearMatrix4DClassID,
StateWatcherClassID,
MessageWatcherClassID,
ButtonChannelClassID,
AdderOfScalarClassID,
MultiplierOfScalarClassID,
RandomizerOfScalarClassID,
RandomizerOfIntClassID,
SmootherOfScalarClassID,
MatcherOfIntClassID,
LFOChannelClassID,
QuantizerClassID,
//
//-----------------
// GUI components
//-----------------
//
GUIComponentClassID,
GUITextComponentClassID,
GUIObjectClassID,
GUITextObjectClassID,
GUITextManagerClassID,
GUIStatBarClassID,
//
//-----------------
// Element renderer
//-----------------
//
VideoRendererClassID,
VideoComponentWebClassID,
VideoComponentClassID,
GroupComponentClassID,
CameraComponentClassID,
LightComponentClassID,
LODComponentClassID,
ShapeComponentClassID,
ScalableShapeComponentClassID,
SwitchComponentClassID,
gosFXComponentClassID,
gosFXControllerClassID,
EffectControllerClassID,
BeamComponentClassID,
SlidingShapeComponentClassID,
MultiLODComponentClassID,
ConeComponentClassID,
//
//-----------------
// Audio renderer
//-----------------
//
AudioSampleClassID,
AudioChannelClassID,
AudioCommandClassID,
SpatializedChannelClassID,
SpatializedCommandClassID,
AudioComponentWebClassID,
EarComponentClassID,
AudioFXComponentClassID,
AudioBeamComponentClassID,
ResourceIDClassID,
NameTableClassID,
ZoneClassID,
TileClassID,
CollisionGridClassID,
InternalDamageObjectClassID,
FirstFreeAdeptClassID
};
// MSL 5.03 Lava
enum {
NoMaterial,
GrassMaterial,
WaterMaterial,
ConcreteMaterial,
GreyDirtMaterial,
BrownDirtMaterial,
RockMaterial,
DarkConcreteMaterial,
DarkGreyDirtMaterial,
DarkBrownDirtMaterial,
DarkRockMaterial,
BlacktopMaterial,
SnowMaterial,
WoodMaterial,
LavaMaterial,
GlassMaterial,
SteelMaterial,
UsMaterial,
ThemMaterial,
LightMineralMaterial,
DarkMineralMaterial,
AshMaterial,
CrackedLavaMaterial,
OpenLavaMaterial,
MaterialCount,
FakeShallowWaterMaterial,
FakeMidWaterMaterial,
FakeOceanicWaterMaterial
};
enum {
DefaultExecutionSlot,
EffectExecutionSlot,
NavPointExecutionSlot,
ExecutionSlotCount
};
enum {
EntityManagerGlobalPointerIndex = 0,
GUIManagerGlobalPointerIndex,
GUITextManagerGlobalPointerIndex,
ApplicationGlobalPointerIndex,
NameTableGlobalPointerIndex,
NetworkGlobalPointerIndex,
PlayerGlobalPointerIndex,
MapGlobalPointerIndex,
MissionGlobalPointerIndex,
FirstFreeAdeptGlobalPointerIndex
};
int MaterialTypeTextToAscii(const char *mode_name);
const char* MaterialTypeAsciiToText(int material);
void InitializeClasses(Stuff::NotationFile *startup_ini=NULL);
void TerminateClasses(Stuff::NotationFile *startup_ini=NULL);
extern HGOSHEAP g_Heap;
extern HGOSHEAP g_LibraryHeap;
}
#define GROUP_ADEPT "Adept::"
#define GROUP_ADEPT_AUDIO "Adept::Audio"
#define GROUP_ADEPT_ENTITY "Adept::Entity"
#define GROUP_ADEPT_EVENT "Adept::Event"
#define GROUP_ADEPT_RESOURCE "Adept::Resource"
#define GROUP_ADEPT_TOOL "Adept::Tool"
#define GROUP_ADEPT_VIDEO "Adept::Video"
#define GROUP_ADEPT_GUI "Adept::GUI"
#define GROUP_ADEPT_NETWORK "Adept::Network"
#if 1
#define PRECOLLISION_LOGIC(string) LOGIC("Pre-Collision::" string)
#else
#define PRECOLLISION_LOGIC(string)
#endif
#if 1
#define POSTCOLLISION_LOGIC(string) LOGIC("Post-Collision::" string)
#else
#define POSTCOLLISION_LOGIC(string)
#endif
#if 0
#define SYNC_LOGIC(string) LOGIC("Sync::" string)
#else
#define SYNC_LOGIC(string)
#endif
#include "Event.hpp"
+156
View File
@@ -0,0 +1,156 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: Adept - Win32 Profile--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MLOWRA~1.VWE\LOCALS~1\Temp\RSP5F.tmp" with contents
[
/nologo /out:"../../../pro.bin\Adept.lib"
.\Profile\AudioChannel.obj
.\Profile\AudioCommand.obj
.\Profile\AudioComponentWeb.obj
.\Profile\AudioFXComponent.obj
.\Profile\AudioFXComponent_Tool.obj
.\Profile\AudioRenderer.obj
.\Profile\AudioRenderer_Tool.obj
.\Profile\AudioSample.obj
.\Profile\AudioSample_Tool.obj
.\Profile\EarComponent.obj
.\Profile\EarComponent_Tool.obj
.\Profile\SpatializedChannel.obj
.\Profile\SpatializedCommand.obj
.\Profile\VOChannel.obj
.\Profile\AttributeWatcher.obj
.\Profile\Channel.obj
.\Profile\Channel_Tool.obj
.\Profile\Component.obj
.\Profile\Component_Tool.obj
.\Profile\ComponentWeb.obj
.\Profile\ComponentWeb_Tool.obj
.\Profile\Matcher.obj
.\Profile\Matcher_Tool.obj
.\Profile\control_mapping.obj
.\Profile\Controls.obj
.\Profile\Controls_Test.obj
.\Profile\Controls_Tool.obj
.\Profile\Joystick.obj
.\Profile\Attribute.obj
.\Profile\CollisionVolume.obj
.\Profile\DamageObject.obj
.\Profile\Entity.obj
.\Profile\Entity_Tool.obj
.\Profile\EntityAttribute.obj
.\Profile\EntityClassData.obj
.\Profile\EntityManager.obj
.\Profile\ExecutionState.obj
.\Profile\GameModelAttribute.obj
.\Profile\State.obj
.\Profile\State_Tool.obj
.\Profile\Application.obj
.\Profile\ApplicationTask.obj
.\Profile\CollisionGrid.obj
.\Profile\Map.obj
.\Profile\Map_Tool.obj
.\Profile\Mission.obj
.\Profile\Mission_Tool.obj
.\Profile\NameTable.obj
.\Profile\Tile.obj
.\Profile\Zone.obj
.\Profile\Event.obj
.\Profile\Event_Test.obj
.\Profile\EventStatistics.obj
.\Profile\Receiver.obj
.\Profile\Receiver_Test.obj
.\Profile\GSpy_Host.obj
.\Profile\darray.obj
.\Profile\gserver.obj
.\Profile\gserverlist.obj
.\Profile\GSpy_client.obj
.\Profile\gutil.obj
.\Profile\hashtable.obj
.\Profile\cengtest.obj
.\Profile\goasample.obj
.\Profile\goautil.obj
.\Profile\Games_GSpy.obj
.\Profile\nonport.obj
.\Profile\Connection.obj
.\Profile\NetExtra.obj
.\Profile\NetStatCollector.obj
.\Profile\Network.obj
.\Profile\Replicator.obj
.\Profile\Replicator_Tool.obj
.\Profile\rasfuncs.obj
.\Profile\Renderer.obj
.\Profile\Renderer_Test.obj
.\Profile\Renderer_Tool.obj
.\Profile\RendererManager.obj
.\Profile\Resource.obj
.\Profile\Resource_Test.obj
.\Profile\ResourceEffectLibrary.obj
.\Profile\ResourceImagePool.obj
.\Profile\Tool.obj
.\Profile\BeamComponent.obj
.\Profile\BeamComponent_Tool.obj
.\Profile\CameraComponent.obj
.\Profile\CameraComponent_Tool.obj
.\Profile\ConeComponent.obj
.\Profile\ConeComponent_Tool.obj
.\Profile\gosFXComponent.obj
.\Profile\gosFXComponent_Tool.obj
.\Profile\LightComponent.obj
.\Profile\LightComponent_Tool.obj
.\Profile\LightManager.obj
.\Profile\LODComponent.obj
.\Profile\LODComponent_Tool.obj
.\Profile\MultiLODComponent.obj
.\Profile\MultiLODComponent_Tool.obj
.\Profile\ScalableShapeComponent.obj
.\Profile\ScalableShapeComponent_Tool.obj
.\Profile\ShapeComponent.obj
.\Profile\ShapeComponent_tool.obj
.\Profile\SlidingShapeComponent.obj
.\Profile\SlidingShapeComponent_tool.obj
.\Profile\SwitchComponent.obj
.\Profile\SwitchComponent_Tool.obj
.\Profile\VideoComponent.obj
.\Profile\VideoComponent_Tool.obj
.\Profile\VideoComponentWeb.obj
.\Profile\VideoRenderer.obj
.\Profile\VideoRenderer_Tool.obj
.\Profile\GUIManager.obj
.\Profile\GUIObject.obj
.\Profile\GUIStatBar.obj
.\Profile\GUITextManager.obj
.\Profile\GUITextObject.obj
.\Profile\Driver.obj
.\Profile\Driver_Tool.obj
.\Profile\DropZone.obj
.\Profile\DropZone_Tool.obj
.\Profile\Effect.obj
.\Profile\Effect_Tool.obj
.\Profile\Interface.obj
.\Profile\Interface_Tool.obj
.\Profile\Mover.obj
.\Profile\Mover_Tool.obj
.\Profile\Player.obj
.\Profile\Player_Tool.obj
.\Profile\Site.obj
.\Profile\Adept.obj
.\Profile\AdeptHeaders.obj
.\Profile\GlobalPointerManager.obj
\GameleapCode5_03\pro.bin\ImageLib.lib
]
Creating command line "link.exe -lib @C:\DOCUME~1\MLOWRA~1.VWE\LOCALS~1\Temp\RSP5F.tmp"
<h3>Output Window</h3>
Creating library...
<h3>Results</h3>
Adept.lib - 0 error(s), 0 warning(s)
</pre>
</body>
</html>
@@ -0,0 +1,3 @@
#include "AdeptHeaders.hpp"
// This file is here to build the .pch file
@@ -0,0 +1,29 @@
//===========================================================================//
// File: munga.hpp //
// Project: Adept Brick: ??? //
// Contents: ??? //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 00/00/00 XXX Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1995-1996, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
// jcem
#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
#include <winsock2.h> // jcem winsock2.h <- winsock.h <- this will include windows.h
#include "Adept.hpp"
#include "ComponentWeb.hpp"
#include "Channel.hpp"
#include "Renderer.hpp"
using namespace Adept;
using namespace Stuff;
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,475 @@
//===========================================================================//
// File: Application.hpp
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 08/25/97 ECH Infrastructure changes. //
//---------------------------------------------------------------------------//
// Copyright (C) 1995-97, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
#include "Adept.hpp"
#include "Network.hpp"
#include "Event.hpp"
#include "State.hpp"
#include "ReplicatorID.hpp"
#include "Entity.hpp"
#include "Player.hpp"
#include "GlobalPointerManager.hpp"
#include <Stuff\Point3D.hpp>
namespace NetMissionParameters
{
class AdeptNetMissionParameters:
public Stuff::Plug
{
public:
int m_runDedicated;
int m_closedGame;
int m_playerLimit;
int m_visibility;
AdeptNetMissionParameters();
virtual void ResetParameters(void);
virtual void SaveParameters(Stuff::DynamicMemoryStream *stream);
virtual void LoadParameters(Stuff::MemoryStream *stream);
virtual void SaveParameters(Stuff::NotationFile *notefile);
virtual void LoadParameters(Stuff::NotationFile *notefile);
virtual void LoadOverideParameters(Stuff::NotationFile *notefile);
virtual void SaveServerParameters(Stuff::NotationFile *notefile);
};
}
#ifdef LAB_ONLY
namespace MWGameInfo
{
const int Packet_History_Count = 200;
const int MAX_GAME_INFO_STR_LEN = 255;
extern int g_currentApplicationPhase;
extern int g_currentApplicationState;
extern Stuff::Point3D g_LastCameraPos;
extern Stuff::Point3D g_LastLocalPlayerPos;
enum {
NoPhase = 0,
PreCollisionPhase,
CollisionPhase,
SyncPhase,
PostCollisionPhase,
NetworkPhase,
UpdateRendererPhase,
RenderPhase,
GameOSPhase,
PhaseCount
};
enum {
NoState = 0,
WaitingForGameState,
LoadingGameState,
PreRenderState,
RunningGameState,
StoppingGameState,
RecycleGameState,
StateCount
};
extern char g_LastFileOpenRequest[MAX_GAME_INFO_STR_LEN*2];
extern char *g_applicationPhases[PhaseCount];
extern char *g_applicationStates[StateCount];
extern int g_lastPacketAddress[Packet_History_Count];
extern int g_lastPacketType[Packet_History_Count];
extern int g_lastPacketSize[Packet_History_Count];
extern bool g_lastPacketInbound[Packet_History_Count];
extern double g_lastPacketTime[Packet_History_Count];
extern int nextPacketHistoryIndex;
}
#endif
namespace Adept {
extern double g_lastPacketFromPlayer[Adept::Maximum_Connection_Numbers];
extern double g_lastPacketToPlayer[Adept::Maximum_Connection_Numbers];
//~~~~~~~~~~~~~~~~~~~~~~~~~~ Forward declarations ~~~~~~~~~~~~~~~~~~~~~~~~~~
class Application;
class HermitEntry;
class Mission;
class ResourceManager;
class Map;
class RendererManager;
class ControlsManager;
class Entity;
class Connection;
class EntityManager;
class ControlsManager;
class RendererManager;
class BackgroundTasks;
class NetworkManager;
const int Maximum_Players=static_cast<int>(255);
const int MaxChatSize=static_cast<int>(222);
//##########################################################################
//################### ApplicationStateEngine #########################
//##########################################################################
class ApplicationStateEngine:
public StateEngine
{
public:
static void
InitializeClass();
static void
TerminateClass();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction and Destruction
//
public:
ApplicationStateEngine(
ClassData *class_data,
int state_number,
Application *the_application
);
~ApplicationStateEngine();
void
TestInstance();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class Data Support
//
public:
static ClassData
*DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// State stuff
//
public:
enum {
InitializingState = StateEngine::StateCount,
WaitingForGameState,
LoadingGameState,
PreRenderState,
RunningGameState,
StoppingGameState,
RecycleGameState,
StateCount
};
int
RequestState(
int new_state,
void* data = NULL
);
protected:
static const StateEntry
StateEntries[];
Application
*owningApplication;
};
//##########################################################################
//######################### Application ##############################
//##########################################################################
typedef InBox__Message Application__Message;
typedef Application__Message Application__RunGameMessage;
typedef Application__Message Application__PauseGameMessage;
class Application:
public InBox
{
friend class ApplicationStateEngine;
public:
static void
InitializeClass();
static void
TerminateClass();
typedef Application__Message Message;
typedef Application__PauseGameMessage PauseGameMessage;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Command line parsing
//
public:
static Application*
GetInstance()
{
return reinterpret_cast<Application *>( GlobalPointers::GetGlobalPointer(ApplicationGlobalPointerIndex));
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction, Destruction, and Testing
//
public:
Application(ClassData *class_data);
~Application();
void
TestInstance();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Execution control
//
public:
static void __stdcall GetFileForGOS(
const char* filename,
BYTE** memory,
DWORD* size
);
static bool __stdcall FindFileForGOS(const char* filename);
virtual void
Initialize();
virtual void
LoadBackgroundTasks();
static void _stdcall
DoGameLogic();
static void _stdcall
UpdateDisplay();
virtual void
StopGame();
virtual void
Terminate();
void
PauseGame()
{Check_Object(this); gamePause = true;}
void
UnpauseGame()
{Check_Object(this); gamePause = false;}
bool
IsPaused()
{Check_Object(this); return gamePause;}
virtual void
RecycleNetworking();
virtual void
StopNetworking();
virtual void
SessionLost(){STOP(("VIRTUAL BASE NOT IMPLEMENTED"));};
virtual void
QueStopGame(bool no_recyle = false)
{Check_Object(this); quedStop = true;}
bool
QuedForStop()
{Check_Object(this); return quedStop;}
virtual void
SendChat(BYTE from, BYTE type, BYTE player_sent_to, char *message){};
virtual char *
GetLocString(int index)=0;
protected:
bool
gamePause;
bool
quedStop;
public:
bool
serverFlag;
bool
networkingFlag;
static int
s_ScreenWidth;
static int
s_ScreenHeight;
static bool
s_DiskFirst;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
public:
int
currentGameNumber;
Stuff::LinearMatrix4D
preRenderDropLocation;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Adept Message Support
//
public:
enum {
LoadQuickGameMessageID = InBox::NextMessageID,
SaveQuickGameMessageID,
PauseGameMessageID,
NextMessageID
};
void
LoadQuickGameMessageHandler(const ReceiverDataMessageOf<int> *message);
void
SaveQuickGameMessageHandler(const ReceiverDataMessageOf<int> *message);
void
PauseGameMessageHandler(const ReceiverDataMessageOf<int> *message);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Network Support
//
virtual void
ConnectClient(int connection,Connection *con){STOP(("NOT IMPLEMENTED"));};
virtual void
DisconnectClient(int connection,Connection *con){STOP(("NOT IMPLEMENTED"));};
virtual void
ReceiveDirectMessage(int connection, int message_type, Stuff::MemoryStream *message){STOP(("NOT IMPLEMENTED"));};
virtual void
ConnectServer(){STOP(("NOT IMPLEMENTED"));};
virtual bool
CheckValidDrop(Point3D position){return true;};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
protected:
static const MessageEntry
MessageEntries[];
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Application State
//
public:
int
GetApplicationState()
{Check_Object(applicationState);return applicationState->GetState();}
protected:
ApplicationStateEngine
*applicationState;
virtual void
EnterRunningGameState(void *data);
virtual void
EnterStoppingGameState(void* data);
virtual void
EnterLoadingGameState(void* data);
virtual void
EnterRecyclingGameState(void* data);
virtual void
EnterPreRenderState(void* data);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Accessors
//
public:
NetMissionParameters::AdeptNetMissionParameters *
m_localMissionParameters;
NetMissionParameters::AdeptNetMissionParameters *
m_serverMissionParameters;
static int
TraceLogSize;
static bool
BuildOK,
TestClasses,
RunOK;
bool
InPreCollisionPhase()
{Check_Object(this); return preCollisionPhase;}
protected:
bool
preCollisionPhase;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Editor Support
//
public:
enum {
NormalGameMode = 0,
EditorMode
};
int
applicationMode;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class Data Support
//
public:
static ClassData
*DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Protected data
//
protected:
BackgroundTasks
*backgroundTasks;
#ifdef LAB_ONLY
public:
static bool
ReportNotResourced;
#endif
public: // jcem
virtual int CheckCampaign(int nType) const { return 0; }
int IsCampCOOP() const { return CheckCampaign(-1); }
};
}
@@ -0,0 +1,211 @@
//===========================================================================//
// File: apptask.cpp //
// Project: MUNGA Brick: Application //
// Contents: Interface specification for Application //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 08/24/94 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#include "AdeptHeaders.hpp"
#include "ApplicationTask.hpp"
#include "EntityManager.hpp"
#include <gameOS\toolOS.hpp>
#if 1
#define TASK_LOGIC(string) LOGIC("Background Tasks::" string)
#else
#define TASK_LOGIC(string)
#endif
//#############################################################################
//########################### ApplicationTask ###########################
//#############################################################################
ApplicationTask::ClassData*
ApplicationTask::DefaultData = NULL;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ApplicationTask::InitializeClass()
{
Verify(!DefaultData);
DefaultData =
new ClassData(
ApplicationTaskClassID,
"Adept::ApplicationTask",
BackgroundTasks::DefaultData
);
Check_Object(DefaultData);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ApplicationTask::TerminateClass()
{
Check_Object(DefaultData);
delete DefaultData;
DefaultData = NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ApplicationTask::ApplicationTask(ClassData *class_data):
Plug(class_data)
{
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ApplicationTask::~ApplicationTask()
{
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
bool
ApplicationTask::Execute()
{
return false;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ApplicationTask::TestInstance()
{
Verify(IsDerivedFrom(DefaultData));
}
//#############################################################################
//########################### BackgroundTasks ###########################
//#############################################################################
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
BackgroundTasks::BackgroundTasks():
Plug(DefaultData),
taskSocket(NULL)
{
taskIterator = new SafeChainIteratorOf<ApplicationTask*>(&taskSocket);
Check_Object(taskIterator);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
BackgroundTasks::~BackgroundTasks()
{
Check_Object(taskIterator);
taskIterator->DeletePlugs();
Check_Object(taskIterator);
delete taskIterator;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
BackgroundTasks::AddTask(ApplicationTask *task)
{
Check_Object(this);
Check_Object(task);
taskSocket.Add(task);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
bool
BackgroundTasks::Execute()
{
Check_Object(this);
ApplicationTask *task;
Check_Object(taskIterator);
taskIterator->First();
while ((task = taskIterator->ReadAndNext()) != NULL)
{
Check_Object(task);
task->Execute();
}
return false;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ProcessEventTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int
ProcessEventTask::ProcessEventCalls = 0;
bool
ProcessEventTask::Execute()
{
TASK_LOGIC("Process Event");
Check_Object(this);
bool result=false;
double stop = gos_GetHiResTime() + 800.0e-6;
Check_Object(EventQueue::Instance);
do {
result = EventQueue::Instance->ProcessOneEvent();
} while (result && gos_GetHiResTime() < stop);
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FryDeathRowTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool
FryDeathRowTask::Execute()
{
TASK_LOGIC("Fry Death Row");
Check_Object(this);
Check_Object(EntityManager::GetInstance());
bool ret = EntityManager::GetInstance()->FryDeathRow();
return ret;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RoutePacketsTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool
RoutePacketsTask::Execute()
{
Check_Object(this);
TASK_LOGIC("Route Packets");
if (Network::GetInstance() != NULL)
{
Check_Object(Network::GetInstance());
while( Network::GetInstance()->RoutePacket() ){}
}
return false;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RoutePacketsTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool
RouteLocalPacketsTask::Execute()
{
Check_Object(this);
TASK_LOGIC("Route Local Packets");
if (Network::GetInstance() != NULL)
{
#ifdef GROUP_ADEPT_NETWORK
LOG_BLOCK("Game Logic::Network::Route Packet");
#endif
Check_Object(Network::GetInstance());
Network::GetInstance()->RouteLocalPacket();
}
return false;
}
@@ -0,0 +1,132 @@
//===========================================================================//
// File: apptask.hpp //
// Project: MUNGA Brick: Application //
// Contents: Interface specification for Application //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 08/24/94 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
#include "Adept.hpp"
namespace Adept {
//##########################################################################
//####################### ApplicationTask ############################
//##########################################################################
class ApplicationTask:
public Stuff::Plug
{
public:
static void
InitializeClass();
static void
TerminateClass();
ApplicationTask(ClassData *class_data = DefaultData);
~ApplicationTask();
void
TestInstance();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class Data Support
//
public:
static ClassData
*DefaultData;
virtual bool
Execute();
};
//##########################################################################
//####################### BackgroundTasks ############################
//##########################################################################
class BackgroundTasks:
public Stuff::Plug
{
public:
BackgroundTasks();
virtual ~BackgroundTasks();
void
AddTask(ApplicationTask *task);
virtual bool
Execute();
protected:
Stuff::SafeChainOf<ApplicationTask*>
taskSocket;
Stuff::SafeChainIteratorOf<ApplicationTask*>
*taskIterator;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~ ProcessEventTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class ProcessEventTask:
public ApplicationTask
{
public:
ProcessEventTask() {}
~ProcessEventTask() {}
bool
Execute();
static int
ProcessEventCalls;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~ FryDeathRowTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class FryDeathRowTask:
public ApplicationTask
{
public:
FryDeathRowTask() {}
~FryDeathRowTask() {}
bool
Execute();
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~ RoutePacketsTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class RoutePacketsTask:
public ApplicationTask
{
public:
RoutePacketsTask() {}
~RoutePacketsTask() {}
bool
Execute();
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~ RouteLocalPacketsTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class RouteLocalPacketsTask:
public ApplicationTask
{
public:
RouteLocalPacketsTask() {}
~RouteLocalPacketsTask() {}
bool
Execute();
};
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More