Files
firestorm/Gameleap/code/mw4/Code/MW4/ElevationMap.cpp
T
Cyd 2b8ca921cb 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.
2026-06-24 21:28:16 -05:00

188 lines
5.1 KiB
C++

//===========================================================================//
// File: ElevationMap.cpp
// Project: MechWarrior4 //
// Contents: Implementation details of static entity class //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 12/21/98 JSE Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1998, Fasa Interactive //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#include "MW4Headers.hpp"
#if !defined(ADEPT_ENTITYMANAGER_HPP)
#include "Adept\EntityManager.hpp"
#endif
#define ELEVATIONMAP_VERSION 0
//#############################################################################
//############################### ElevationMap ##########################
//#############################################################################
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ElevationMap::ClassData*
ElevationMap::DefaultData = NULL;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::InitializeClass()
{
Check_Object(PreCollisionStateEngine::DefaultData);
Check_Object(PostCollisionStateEngine::DefaultData);
Verify(!DefaultData);
DefaultData =
new ClassData(
ElevationMapClassID,
"MechWarrior4::ElevationMap",
Entity::DefaultData,
0, NULL,
(Entity::Factory)Make,
(Entity::ToolFactory)ToolMake,
ELEVATIONMAP_VERSION,
PreCollisionStateEngine::DefaultData,
PostCollisionStateEngine::DefaultData,
CreateGameModel
);
Register_Object(DefaultData);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::TerminateClass()
{
Unregister_Object(DefaultData);
delete DefaultData;
DefaultData = NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ElevationMap*
ElevationMap::Make(
MemoryStream *stream,
CreationParameters *creation_parameters
)
{
Check_Object(stream);
ElevationMap *new_entity;
Entity__Make(&new_entity, DefaultData, stream, creation_parameters);
return new_entity;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::Save(MemoryStream *stream)
{
Check_Object(this);
Check_Object(stream);
Entity::Save(stream);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ElevationMap::ElevationMap(
ClassData *class_data,
MemoryStream *stream,
CreationParameters *creation_parameters
):
Entity(class_data, stream, creation_parameters)
{
Check_Pointer(this);
Check_Object(stream);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::Reuse(
MemoryStream *stream,
CreationParameters *creation_parameters
)
{
Entity::Reuse(stream, creation_parameters);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::PreCollisionExecute(const SimulationTime& till)
{
STOP(("ElevationMap::PreCollisionExecute should never be called"));
#if 0
Check_Object(this);
Check_Object(&till);
Entity::PreCollisionExecute(till);
//
//---------------------------------
// If we aren't executing, stop now
//---------------------------------
//
Check_Object(preCollisionState);
int pre_state = preCollisionState->GetState();
Verify(pre_state != PreCollisionStateEngine::NeverExecuteState);
//
//---------------------------------------------------
// If the state is just AlwaysExecute, just sit there
//---------------------------------------------------
//
if (pre_state == PreCollisionStateEngine::AlwaysExecuteState)
{
return;
}
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::PostCollisionExecute(const SimulationTime& till)
{
STOP(("ElevationMap::PostCollisionExecute should never be called"));
#if 0
Check_Object(this);
Check_Object(&till);
//
//------------------------------
// Handle the never execute case
//------------------------------
//
Check_Object(postCollisionState);
#ifdef _DEBUG
int post_state = postCollisionState->GetState();
Verify(post_state != PostCollisionStateEngine::NeverExecuteState);
#endif
Entity::PostCollisionExecute(till);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
ElevationMap::TestInstance() const
{
Verify(IsDerivedFrom(DefaultData));
}