Initial import: Tesla Release 4.10 (Tesla:BattleTech & Tesla:Red Planet)

Archival snapshot of the Virtual World Entertainment Tesla cockpit
software, 1994-1996: MUNGA engine and L4 pod layer source (Borland
C++ 5.0), BT/RP game code, and game content (models, audio, maps,
gauges, Division renderer data). Includes third-party libraries:
Division dVS/DPL graphics, HMI SOS audio, WATTCP networking.

Files are preserved byte-for-byte (.gitattributes disables all
line-ending conversion). README.md documents the layout, target
hardware, and toolchain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-02 13:21:58 -05:00
co-authored by Claude Fable 5
commit fdd9ac9d97
8682 changed files with 419927 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
#if !defined(BTL4_HPP)
# define BTL4_HPP
# if !defined(BT_HPP)
# include <bt.hpp>
# endif
# if !defined(MUNGAL4_HPP)
# include <mungal4.hpp>
# endif
#endif
+153
View File
@@ -0,0 +1,153 @@
.autodepend
.cacheautodepend
.suffixes: .cpp
!ifndef BTYPE
!error BTYPE macro not supplied
!endif
!ifndef BPATH
!error BPATH macro not supplied
!endif
!include make.cfg
!include $(BPATH)
TARGET_DIR = $(BTL4_ROOT)\$(BTYPE)
TARGET_PATH = $(TARGET_DIR)\\
.path.obj = $(TARGET_DIR)
.path.lib = $(LIBRARY_PATH)
LIB_PREFIX = -+$(TARGET_DIR)\\
CFG_FILE = $(TARGET_DIR)\$(BTYPE).cfg
HEADER_FILE = btl4$(BTYPE).csm
#------------------------------------------------------------------------------
# Library targets
#
all:\
$(CFG_FILE) $(TARGET_DIR)\btl4$(BTYPE).exe $(TARGET_DIR)\btl4tool.exe\
$(TARGET_DIR)\mechbld.exe
clean:
del $(TARGET_DIR)\*.obj
del $(TARGET_DIR)\*.lib
del $(TARGET_DIR)\*.exe
del $(TARGET_DIR)\*.bak
del $(TARGET_DIR)\*.cfg
assemble:
@echo No assembly targets
#------------------------------------------------------------------------------
# Implicit rules
#
!include $(BTYPE).mak
!ifndef STARTUP_OBJ
!error STARTUP_OBJ macro is not defined
!endif
!ifndef STARTUP_LIBS
!error STARTUP_LIBS macro is not defined
!endif
{$(INCLUDE_PATH)}.cpp{$(TARGET_DIR)}.obj:
$(BCC) @$(CFG_FILE) $< >>error.log
{$(INCLUDE_PATH)}.c{$(TARGET_DIR)}.obj:
$(BCC) @$(CFG_FILE) $< >>error.log
{$(BTL4_ROOT)}.asm{$(TARGET_DIR)}.obj:
tasm32 -ml $(TASM_OPTIONS) -i$(BTL4_ROOT) $<,$@ >>error.log
#------------------------------------------------------------------------------
# Game
#
$(TARGET_DIR)\btl4$(BTYPE).exe: \
$(BTL4_ROOT)\btl4.mak l4stub.lib stub.lib $(TARGET_DIR)\btl4.lib\
bt.lib mungal4.lib munga.lib btl4.obj $(BTYPE).mak\
$(DPL_ROOT)\libdpl.lib
tlink32 @&&|
$(LINK_OPTIONS) +
$(STARTUP_OBJ)+
$(TARGET_DIR)\btl4.obj
$<,$*
l4stub.lib+
stub.lib+
munga.lib+
mungal4.lib+
$(DPL_ROOT)\libdpl.lib+
bt.lib+
$(TARGET_DIR)\btl4.lib+
$(STARTUP_LIBS)
| >>error.log
btl4.obj: $(CFG_FILE)
#------------------------------------------------------------------------------
# Tools
#
$(TARGET_DIR)\btl4tool.exe: \
$(BTL4_ROOT)\btl4.mak l4stub.lib stub.lib $(TARGET_DIR)\btl4.lib\
bt.lib mungal4.lib munga.lib btl4tool.obj $(BTYPE).mak\
$(DPL_ROOT)\libdpl.lib
tlink32 @&&|
$(LINK_OPTIONS) +
$(STARTUP_OBJ)+
$(TARGET_DIR)\btl4tool.obj
$<,$*
l4stub.lib+
stub.lib+
munga.lib+
mungal4.lib+
$(DPL_ROOT)\libdpl.lib+
bt.lib+
$(TARGET_DIR)\btl4.lib+
$(STARTUP_LIBS)
| >>error.log
btl4tool.obj: $(CFG_FILE)
#------------------------------------------------------------------------------
# Mech builder
#
$(TARGET_DIR)\mechbld.exe:\
$(BTL4_ROOT)\btl4.mak mechbld.obj stub.lib munga.lib $(BTYPE).mak
tlink32 @&&|
$(LINK_OPTIONS) +
$(STARTUP_OBJ)+
$(TARGET_DIR)\mechbld.obj
$<,$*
stub.lib+
munga.lib+
$(STARTUP_LIBS)
| >>error.log
mechbld.obj: $(BCC_CONFIG) $(BTYPE).mak
#------------------------------------------------------------------------------
# Battletech library
#
BTL4_OBJS = \
?btl4mode.obj \
?btl4rdr.obj \
?btl4gaug.obj \
?btl4gau2.obj \
?btl4gau3.obj \
?btl4grnd.obj \
?btl4galm.obj \
?btl4vid.obj \
?btl4mppr.obj \
?btl4arnd.obj \
?btl4mssn.obj \
?btl4app.obj \
?btl4pb.obj
$(BTL4_OBJS:?=): $(CFG_FILE)
$(TARGET_DIR)\btl4.lib: $(BTL4_OBJS:?=) $(BTL4_ROOT)\btl4.mak
tlib $@ $(LIB_OPTIONS) @&&|
$(BTL4_OBJS:?=$(LIB_PREFIX))
| >>error.log
+88
View File
@@ -0,0 +1,88 @@
//===========================================================================//
// File: rp4lbe4.hh //
// Project: MUNGA Brick: Red Planet LBE Application //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4APP_HPP)
# define BTL4APP_HPP
# if !defined(BTL4MPPR_HPP)
# include <btl4mppr.hpp>
# endif
//##########################################################################
//###################### BTL4Application ##########################
//##########################################################################
//##########################################################################
//###################### RP4L4Application ############################
//##########################################################################
class BTL4Application:
public L4Application
{
public:
BTL4Application(
ResourceFile *resource_file,
ClassID class_ID=L4ApplicationClassID,
SharedData &shared_data=DefaultData
);
~BTL4Application();
static Derivation ClassDerivations;
static SharedData DefaultData;
private:
Registry*
MakeRegistry();
VideoRenderer*
MakeVideoRenderer();
AudioRenderer*
MakeAudioRenderer();
GaugeRenderer*
MakeGaugeRenderer();
ModeManager*
MakeModeManager();
ControlsManager*
MakeControlsManager();
Mission*
MakeMission(
NotationFile *notation_file,
ResourceFile *resources
);
Entity*
MakeViewpointEntity(Entity::MakeMessage *);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Message Support
//
private:
static const HandlerEntry MessageHandlerEntries[];
protected:
static MessageHandlerSet MessageHandlers;
void
RunMissionMessageHandler(RunMissionMessage *message);
void
StopMissionMessageHandler(StopMissionMessage *message);
};
#endif
+185
View File
@@ -0,0 +1,185 @@
//===========================================================================//
// File: btl4arnd.cc //
// Project: MUNGA Brick: Audio Renderer Manager //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 01/30/95 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#include <btl4.hpp>
#pragma hdrstop
#if !defined(BTL4ARND_HPP)
# include <btl4arnd.hpp>
#endif
#if !defined(JMOVER_HPP)
# include <jmover.hpp>
#endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BTL4AudioHead ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//#############################################################################
//#############################################################################
//
BTL4AudioHead::BTL4AudioHead():
earToWorld(LinearMatrix::Identity)
{
useEyepointSegment = False;
eyepointSegment = NULL;
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
BTL4AudioHead::~BTL4AudioHead()
{
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
void
BTL4AudioHead::LinkToEntity(Entity *entity)
{
Check(this);
Check(entity);
//
// Call inherited method
//
AudioHead::LinkToEntity(entity);
#if 0
//
// Find segment containing eyepoint
//
JointedMover *jointed_mover;
jointed_mover = Cast_Object(JointedMover*, entity);
eyepointSegment = jointed_mover->GetSegment("siteeyepoint");
Check(eyepointSegment);
CalculateEarToWorld();
#else
useEyepointSegment = False;
if (entity->IsDerivedFrom(JointedMover::ClassDerivations))
{
//
// Find segment containing eyepoint
//
JointedMover *jointed_mover;
jointed_mover = Cast_Object(JointedMover*, entity);
if ((eyepointSegment = jointed_mover->GetSegment("siteeyepoint")) != NULL)
{
Check(eyepointSegment);
useEyepointSegment = True;
CalculateEarToWorld();
}
}
#endif
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
void
BTL4AudioHead::CalculateEarToWorld()
{
Check(this);
if (useEyepointSegment)
{
Verify(GetHeadEntity()->IsDerivedFrom(JointedMover::ClassDerivations));
JointedMover *jointed_mover = Cast_Object(JointedMover*, GetHeadEntity());
//
// Get the ear transform
//
jointed_mover->GetSegmentToWorld(*eyepointSegment, &earToWorld);
}
else
{
earToWorld = AudioHead::GetEarToWorld();
}
Check(&earToWorld);
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
void
BTL4AudioHead::Execute()
{
Check(this);
AudioHead::Execute();
CalculateEarToWorld();
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
LinearMatrix
BTL4AudioHead::GetEarToWorld()
{
Check(this);
Check_Fpu();
return earToWorld;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BTL4AudioRenderer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//#############################################################################
//#############################################################################
//
BTL4AudioRenderer::BTL4AudioRenderer(
RendererRate render_rate,
Logical mission_review_mode
):
L4AudioRenderer(
render_rate,
mission_review_mode
)
{
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
BTL4AudioRenderer::~BTL4AudioRenderer()
{
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
AudioHead*
BTL4AudioRenderer::MakeAudioHead()
{
Check_Fpu();
return new BTL4AudioHead;
}
+112
View File
@@ -0,0 +1,112 @@
//===========================================================================//
// File: btl4arnd.hh //
// Project: MUNGA Brick: Audio Renderer Manager //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 01/30/95 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4ARND_HPP)
# define BTL4ARND_HPP
# if !defined(L4AUDRND_HPP)
# include <l4audrnd.hpp>
# endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BTL4AudioHead ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Segment;
class BTL4AudioHead:
public AudioHead
{
public:
//
//--------------------------------------------------------------------
// Construction, Destruction, Testing
//--------------------------------------------------------------------
//
BTL4AudioHead();
~BTL4AudioHead();
//
//-----------------------------------------------------------------------
// LinkToEntity
//-----------------------------------------------------------------------
//
void
LinkToEntity(Entity *entity);
//
//-----------------------------------------------------------------------
// GetEarToWorld
//-----------------------------------------------------------------------
//
LinearMatrix
GetEarToWorld();
//
//-----------------------------------------------------------------------
// Execute
//-----------------------------------------------------------------------
//
void
Execute();
private:
//
//--------------------------------------------------------------------------
// Private methods
//--------------------------------------------------------------------------
//
void
CalculateEarToWorld();
//
//--------------------------------------------------------------------------
// Private Data
//--------------------------------------------------------------------------
//
Logical
useEyepointSegment;
EntitySegment*
eyepointSegment;
LinearMatrix
earToWorld;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BTL4AudioRenderer ~~~~~~~~~~~~~~~~~~~~~~~~~~~
class BTL4AudioRenderer:
public L4AudioRenderer
{
public:
//
//--------------------------------------------------------------------
// Construction, Destruction, Testing
//--------------------------------------------------------------------
//
BTL4AudioRenderer(
RendererRate render_rate,
Logical mission_review_mode
);
~BTL4AudioRenderer();
private:
//
//-----------------------------------------------------------------------
// MakeAudioHead
//-----------------------------------------------------------------------
//
AudioHead*
MakeAudioHead();
};
#endif
+44
View File
@@ -0,0 +1,44 @@
//===========================================================================//
// File: gaugalrm.hpp //
// Project: MUNGA Brick: Gauge Renderer Manager //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 02/22/96 CPB Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1996, Virtual World Entertainment, Inc. All rights reserved //
// PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4GALM_HPP)
# define BTL4GALM_HPP
# if !defined(GAUGALRM_HPP)
# include "gaugalrm.hpp"
# endif
//#######################################################################
// BTL4GaugeAlarmManager
//#######################################################################
class BTL4GaugeAlarmManager :
public GaugeAlarmManager
{
public:
Logical
CreateGaugeAlarmStreamItem(
MemoryStream *mem_stream,
const char *alarm_name,
const char *alarm_data
);
void
ReadGaugeAlarmStreamItem(
GaugeAlarm *alarm,
Entity *the_entity,
Subsystem *the_subsystem,
Enumeration the_condition,
MemoryStream *mem_stream
);
};
#endif
+48
View File
@@ -0,0 +1,48 @@
//===========================================================================//
// File: rpl4grnd.hh //
// Project: MUNGA Brick: Gauge Renderer Manager //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 02/13/95 CPB Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. All rights reserved //
// PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4GRND_HPP)
# define BTL4GRND_HPP
# if !defined(L4GREND_HPP)
# include <l4grend.hpp>
# endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~ BTL4GaugeRenderer ~~~~~~~~~~~~~~~~~~~~~~~~~~
class BTL4GaugeRenderer:
public L4GaugeRenderer
{
public:
//
//--------------------------------------------------------------------
// Construction, Destruction, Testing
//--------------------------------------------------------------------
//
BTL4GaugeRenderer();
~BTL4GaugeRenderer();
Logical
TestInstance() const;
void
NotifyOfNewInterestingEntity(Entity *entity);
void
NotifyOfBecomingUninterestingEntity(Entity *entity);
};
#endif
+104
View File
@@ -0,0 +1,104 @@
//==========================================================================//
// File: BTMODE.CPP //
// Project: MUNGA Brick: Controls Manager //
// Contents: Interface specification for BT LBE4 Controls //
//--------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ----------------------------------------------------------//
// 02/13/96 CPB Built from CONTROLS.CPP //
//--------------------------------------------------------------------------//
// Copyright (C) 1994-1996, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//==========================================================================//
#include <btl4.hpp>
#pragma hdrstop
#if !defined(BTL4MODE_HPP)
# include <btl4mode.hpp>
#endif
#if defined(DEBUG)
# define Test_Tell(n) DEBUG_STREAM << n
#else
# define Test_Tell(n)
#endif
struct ModeLookup
{
const char *name;
ModeMask modeMask;
};
static ModeLookup
mode_lookup[] =
{
{"ModeMFD1Quad", BTL4ModeManager::ModeMFD1Quad},
{"ModeMFD1Eng1", BTL4ModeManager::ModeMFD1Eng1},
{"ModeMFD1Eng2", BTL4ModeManager::ModeMFD1Eng2},
{"ModeMFD1Eng3", BTL4ModeManager::ModeMFD1Eng3},
{"ModeMFD1Eng4", BTL4ModeManager::ModeMFD1Eng4},
{"ModeMFD2Quad", BTL4ModeManager::ModeMFD2Quad},
{"ModeMFD2Eng1", BTL4ModeManager::ModeMFD2Eng1},
{"ModeMFD2Eng2", BTL4ModeManager::ModeMFD2Eng2},
{"ModeMFD2Eng3", BTL4ModeManager::ModeMFD2Eng3},
{"ModeMFD2Eng4", BTL4ModeManager::ModeMFD2Eng4},
{"ModeMFD3Quad", BTL4ModeManager::ModeMFD3Quad},
{"ModeMFD3Eng1", BTL4ModeManager::ModeMFD3Eng1},
{"ModeMFD3Eng2", BTL4ModeManager::ModeMFD3Eng2},
{"ModeMFD3Eng3", BTL4ModeManager::ModeMFD3Eng3},
{"ModeMFD3Eng4", BTL4ModeManager::ModeMFD3Eng4},
{"ModeMapping", BTL4ModeManager::ModeMapping},
{"ModeNonMapping", BTL4ModeManager::ModeNonMapping},
{"ModeIntercom", BTL4ModeManager::ModeIntercom},
{"ModeSecondaryDamage", BTL4ModeManager::ModeSecondaryDamage},
{"ModeSecondaryCritical", BTL4ModeManager::ModeSecondaryCritical},
{"ModeSecondaryHeat", BTL4ModeManager::ModeSecondaryHeat},
{"ModeEject", BTL4ModeManager::ModeEject},
{"ModePlasmaDisplay", BTL4ModeManager::ModePlasmaDisplay},
{"ModeInitial", BTL4ModeManager::ModeInitial},
{"ModeNonConfig", BTL4ModeManager::ModeNonConfig},
{"ModeMFD1NonQuad", BTL4ModeManager::ModeMFD1NonQuad},
{"ModeMFD1All", BTL4ModeManager::ModeMFD1All},
{"ModeMFD2NonQuad", BTL4ModeManager::ModeMFD2NonQuad},
{"ModeMFD2All", BTL4ModeManager::ModeMFD2All},
{"ModeMFD3NonQuad", BTL4ModeManager::ModeMFD3NonQuad},
{"ModeMFD3All", BTL4ModeManager::ModeMFD3All},
{"ModeSecondaryAll", BTL4ModeManager::ModeSecondaryAll},
{ NULL, (ModeMask)0}
};
Logical
BTL4ModeManager::ModeStringLookup(
const char *name,
ModeMask *returned_value
)
{
Check(this);
Check_Pointer(name);
Check_Pointer(returned_value);
//----------------------------------------
// Search table for match
//----------------------------------------
ModeLookup
*lookup;
for(lookup=mode_lookup; lookup->name!=NULL; ++lookup)
{
if (stricmp(name, lookup->name) == 0)
{
*returned_value = lookup->modeMask;
Check_Fpu();
return True;
}
}
//----------------------------------------
// Not found here, check next level down.
//----------------------------------------
Check_Fpu();
return ModeManager::ModeStringLookup(name, returned_value);
}
+152
View File
@@ -0,0 +1,152 @@
//===========================================================================//
// File: btl4mode.hpp //
// Project: Battletech //
// Contents: BTL4 controls //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 02/13/96 CPB Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1996, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4MODE_HPP)
# define BTL4MODE_HPP
# if !defined(MODE_HPP)
# include <mode.hpp>
# endif
//#########################################################################
//########################## BTL4ControlsManager ##########################
//#########################################################################
class BTL4ModeManager:
public ModeManager
{
public:
enum
{
};
//-------------------------------------------------------------------
// Construction/destruction/verification
//-------------------------------------------------------------------
public:
BTL4ModeManager(ModeMask initial_mask):
ModeManager(initial_mask)
{}
//-------------------------------------------------------------------
// Mode control
//-------------------------------------------------------------------
enum
{
ModeMFD1QuadBit = ModeManager::nextModeBit,
ModeMFD1Eng1Bit,
ModeMFD1Eng2Bit,
ModeMFD1Eng3Bit,
ModeMFD1Eng4Bit,
ModeMFD2QuadBit,
ModeMFD2Eng1Bit,
ModeMFD2Eng2Bit,
ModeMFD2Eng3Bit,
ModeMFD2Eng4Bit,
ModeMFD3QuadBit,
ModeMFD3Eng1Bit,
ModeMFD3Eng2Bit,
ModeMFD3Eng3Bit,
ModeMFD3Eng4Bit,
ModeMappingBit,
ModeNonMappingBit,
ModeIntercomBit,
ModeSecondaryDamageBit,
ModeSecondaryCriticalBit,
ModeSecondaryHeatBit,
ModeEjectBit,
ModePlasmaDisplayBit,
};
enum
{
// These 5 mutually exclusive
ModeMFD1Quad = 1L<<ModeMFD1QuadBit,
ModeMFD1Eng1 = 1L<<ModeMFD1Eng1Bit,
ModeMFD1Eng2 = 1L<<ModeMFD1Eng2Bit,
ModeMFD1Eng3 = 1L<<ModeMFD1Eng3Bit,
ModeMFD1Eng4 = 1L<<ModeMFD1Eng4Bit,
// These 5 mutually exclusive
ModeMFD2Quad = 1L<<ModeMFD2QuadBit,
ModeMFD2Eng1 = 1L<<ModeMFD2Eng1Bit,
ModeMFD2Eng2 = 1L<<ModeMFD2Eng2Bit,
ModeMFD2Eng3 = 1L<<ModeMFD2Eng3Bit,
ModeMFD2Eng4 = 1L<<ModeMFD2Eng4Bit,
// These 5 mutually exclusive
ModeMFD3Quad = 1L<<ModeMFD3QuadBit,
ModeMFD3Eng1 = 1L<<ModeMFD3Eng1Bit,
ModeMFD3Eng2 = 1L<<ModeMFD3Eng2Bit,
ModeMFD3Eng3 = 1L<<ModeMFD3Eng3Bit,
ModeMFD3Eng4 = 1L<<ModeMFD3Eng4Bit,
// These two mutually exclusive
ModeMapping = 1L<<ModeMappingBit,
ModeNonMapping= 1L<<ModeNonMappingBit,
ModeIntercom = 1L<<ModeIntercomBit,
// These three mutually exclusive
ModeSecondaryDamage = 1L<<ModeSecondaryDamageBit,
ModeSecondaryCritical= 1L<<ModeSecondaryCriticalBit,
ModeSecondaryHeat = 1L<<ModeSecondaryHeatBit,
ModeEject = 1L<<ModeEjectBit,
ModePlasmaDisplay = 1L<<ModePlasmaDisplayBit
};
// Useful combinations
enum
{
ModeInitial =
ModeMFD1Quad|ModeMFD2Quad|ModeMFD3Quad|ModeNonMapping|
ModeSecondaryDamage,
ModeNonConfig =
ModeNonMapping,
ModeMFD1NonQuad =
ModeMFD1Eng1|ModeMFD1Eng2|ModeMFD1Eng3|ModeMFD1Eng4,
ModeMFD1All =
ModeMFD1Quad|ModeMFD1NonQuad,
ModeMFD2NonQuad =
ModeMFD2Eng1|ModeMFD2Eng2|ModeMFD2Eng3|ModeMFD2Eng4,
ModeMFD2All =
ModeMFD2Quad|ModeMFD2NonQuad,
ModeMFD3NonQuad =
ModeMFD3Eng1|ModeMFD3Eng2|ModeMFD3Eng3|ModeMFD3Eng4,
ModeMFD3All =
ModeMFD3Quad|ModeMFD3NonQuad,
ModeSecondaryAll =
ModeSecondaryDamage|ModeSecondaryCritical|ModeSecondaryHeat
};
Logical // defined as virtual in MODE.HPP
ModeStringLookup(const char *name, ModeMask *returned_value);
};
#endif
+46
View File
@@ -0,0 +1,46 @@
//===========================================================================//
// File: rpl4mssn.hpp //
// Project: MUNGA Brick: //
// Contents: Interface specification for missions //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 04/07/95 ECH Initial coding. //
// 09/12/95 JM Derived from L4Mission //
//---------------------------------------------------------------------------//
// Copyright (C) 1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4MSSN_HPP)
# define BTL4MSSN_HPP
# if !defined(BTMSSN_HPP)
# include <btmssn.hpp>
# endif
//##########################################################################
//########################### BTL4Mission ############################
//##########################################################################
class BTL4Mission:
public BTMission
{
public:
BTL4Mission(
NotationFile *notation_file,
ResourceFile *resources
);
~BTL4Mission();
Logical
TestInstance() const;
void
SetPlayerData(NotationFile *notation_file);
};
#endif
+116
View File
@@ -0,0 +1,116 @@
//===========================================================================//
// File: rp4lbe4.hh //
// Project: MUNGA Brick: Red Planet LBE Application //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4PB_HPP)
# define BTL4PB_HPP
# if !defined(BTL4APP_HPP)
# include <btl4app.hpp>
# endif
# if !defined(L4SPLR_HPP)
# include <l4splr.hpp>
# endif
//##########################################################################
//####################### RPSpoolerTask ##############################
//##########################################################################
class BTSpoolerTask:
public SpoolerTask
{
public:
BTSpoolerTask();
~BTSpoolerTask();
void
DispatchPacket(NetworkPacket *packet);
long
GetTimeBias();
};
//##########################################################################
//#################### RPPlaybackApplication ##########################
//##########################################################################
class BTL4PlaybackApplication:
public BTL4Application
{
public:
BTL4PlaybackApplication(
ResourceFile *resource,
SpoolFile *spool_file = NULL
);
~BTL4PlaybackApplication();
Logical
TestInstance() const;
void
SetSpoolFile(SpoolFile *spool_file)
{spoolFile = spool_file;}
MissionReviewApplicationManager*
GetApplicationManager()
{
return
(MissionReviewApplicationManager*)
Application::GetApplicationManager();
}
long
GetTimeBias()
{return timeBias;}
void
DispatchPacket(NetworkPacket *packet);
protected:
NetworkManager*
MakeNetworkManager();
long
timeBias;
void
Initialize();
void
LoadBackgroundTasks();
Logical
ExecuteForeground(
Time start_of_frame,
Scalar frame_duration
);
void
ExecuteBackgroundTask();
static const HandlerEntry
MessageHandlerEntries[];
static MessageHandlerSet
MessageHandlers;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Shared Data Support
//
public:
static Derivation ClassDerivations;
static SharedData DefaultData;
void
RunMissionMessageHandler(RunMissionMessage *message);
void
StopMissionMessageHandler(StopMissionMessage *message);
};
#endif
+238
View File
@@ -0,0 +1,238 @@
//===========================================================================//
// File: btl4gaug.hh //
// Project: MUNGA Brick: Gauge Renderer Manager //
// Contents: //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 09/13/95 CPB Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. All rights reserved //
// PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#if !defined(BTL4RDR_HPP)
# define BTL4RDR_HPP
# if !defined(SLOT_HPP)
# include <slot.hpp>
# endif
# if !defined(L4GREND_HPP)
# include <l4grend.hpp>
# endif
# if !defined(L4GAUGE_HPP)
# include <l4gauge.hpp>
# endif
# if !defined(ROTATION_HPP)
# include <rotation.hpp>
# endif
# if !defined(RANDOM_HPP)
# include <random.hpp>
# endif
# if !defined(POINT3D_HPP)
# include "point3d.hpp"
# endif
# if !defined(HEAT_HPP)
# include <heat.hpp>
# endif
# if !defined(POWERSUB_HPP)
# include <powersub.hpp>
# endif
struct ShadowRecord
{
int distance;
};
class MapDisplay;
class MapName SIGNATURED // Used exclusively by MapDisplay
{
friend class MapDisplay;
MapName()
{}
~MapName()
{}
Logical
TestInstance() const
{
return True;
}
protected:
void
ExtractFromEntity(
Entity *entity,
AffineMatrix &worldToView,
Entity *exclude_entity=NULL,
Entity *hotbox_entity=NULL
);
void
Draw(
GraphicsView *graphics_view,
int hotbox_color
);
Point3D
center;
Vector3D
direction;
BitMap
*nameBitmap;
int
color;
Logical
hotBoxed;
};
class MapDisplay :
public GraphicGauge
{
public:
enum OffsetPosition
{
center,
bottom
};
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer *gauge_renderer
);
MapDisplay(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int left, int bottom,
int right, int top,
OffsetPosition offset_position,
int view_width_in_degrees,
int bg_color,
int static_color,
int hotbox_color,
Scalar maximum_range,
Entity *entity,
Scalar *scale_value_pointer,
Point3D **position_pointer,
Quaternion **angle_pointer,
Scalar *capabilities_ratio,
Logical allow_rock_and_roll=False
);
~MapDisplay();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
BecameActive();
void
Execute();
protected:
void
CalculateBounds();
void
EraseDisplay();
void
DrawDisplay();
void
BuildRadarShadow(AffineMatrix &worldToView);
void
DrawViewWedge();
void
DrawStatic(AffineMatrix &worldToView);
void
DrawMoving(AffineMatrix &worldToView);
void
DrawNames(AffineMatrix &worldToView);
enum
{
maximumNames = 16
};
MapName
nameArray[maximumNames];
OffsetPosition
offsetPosition;
Scalar
currentScale;
Point3D *
currentPositionPointer;
Quaternion *
currentAngularPointer;
Scalar
currentCapabilitiesRatio;
Scalar
LODIndex,
pixelsPerMeter,
metersPerPixel,
maximumRange,
maximumDistanceSquared,
xMin,
yMin,
zMin,
xMax,
yMax,
zMax;
Point3D
viewingPosition;
Radian
viewHorizontalRotation;
Radian
viewHalfHorizontalWidth;
AffineMatrix
worldToView;
int
operatingPhase,
backgroundColor,
staticColor,
boxColor,
halfWidth,
halfHeight;
Logical
operating,
rockAndRoll,
flashState;
GaugeEntityList
staticEntityList,
movingEntityList;
GraphicsViewRecord
previousDrawing;
int
halfViewWidthInUnits;
ShadowRecord
*shadowTable;
};
#endif
+9
View File
@@ -0,0 +1,9 @@
#if !defined(BTL4VER_HPP)
# define BTL4VER_HPP
# define MAJOR_DATA_VERSION 1
# define RELEASE_VERSION 0
# define MINOR_DATA_VERSION 6
#endif
+5
View File
@@ -0,0 +1,5 @@
SCC = This is a Source Code Control file
[BTL4.MAK]
SCC_Aux_Path = "\\AVATAR\Mungass\VSS"
SCC_Project_Name = "$/Tesla_BT/BT_L4", ZOCAAAAA
Binary file not shown.