Initial import of Red Planet v4.10 Win32 source

Imports the current Win32 source for the pod-racing game 'Red Planet',
built on the MUNGA engine and its L4 (Win32/DirectX) platform layer:

- MUNGA / MUNGA_L4: cross-platform engine core and Win32 backend
- RP / RP_L4: Red Planet game logic and Win32 application
- DivLoader, Setup1: asset loader and installer project
- lib, MUNGA_L4/openal, MUNGA_L4/sos: third-party audio dependencies

Removed stale Subversion metadata and added .gitignore/.gitattributes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-06-30 07:59:51 -05:00
co-authored by Claude Opus 4.8
commit 4abbf8879f
551 changed files with 254956 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
[JoystickX]
high=30
center=20
low=10
[JoystickY]
high=30
center=20
low=10
[operator]
time=Sun Feb 11 01:40:50 2007
+284
View File
@@ -0,0 +1,284 @@
////===========================================================================//
//// File: rp4lbe4.cc //
//// 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 //
////===========================================================================//
//
#define WIN32_LEAN_AND_MEAN
#define _WIN32_WINNT 0x0500
#define WINVER 0x0500
#include <tchar.h>
#include "rpl4.h"
#pragma hdrstop
#include "rpl4pb.h"
#include "..\munga_l4\l4splr.h"
#include "rpl4ver.h"
#include "..\munga\resver.h"
#include "..\munga\resource.h"
// added for game status drawing support
#include "..\munga\player.h"
#include "..\munga\mission.h"
#include "..\munga_l4\l4ctrl.h"
// end add
#include <DbgHelp.h>
#include <strsafe.h>
#include <direct.h>
#include <shellapi.h>
#define SPOOL_SIZE 0x600000
//#define SCREEN_WIDTH 1024
//#define SCREEN_HEIGHT 768
Byte version[3] = {MAJOR_DATA_VERSION, RELEASE_VERSION, MINOR_DATA_VERSION};
char* names[] = {"InitializingState",
"WaitingForEgg",
"LoadingMission",
"WaitingForLaunch",
"LaunchingMission",
"RunningMission",
"EndingMission",
"StoppingMission",
"SuspendingMission",
"ResumingMission",
"AbortingMission",
"CreatingMission",
"ApplicationStateCount"};
//##########################################################################
//################## RP4L4Application Globals ########################
//##########################################################################
extern const char* const ProgName;
const char* const ProgName = "rpl4";
Application *rpl4App;
HWND hWnd;
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
DestroyWindow(hWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
char filename[50];
strcpy_s(filename, 50, "rpl4.log");
std::ofstream logfile;
logfile.open(filename);
std::cout.rdbuf(logfile.rdbuf());
// load up our environment variables
//controls
if(getenv("L4CONTROLS") == NULL)
putenv("L4CONTROLS=KEYBOARD");
if(getenv("DPLARG") == NULL)
putenv("DPLARG=1");
if(getenv("L4DPLCFG") == NULL)
putenv("L4DPLCFG=RPDPL.INI");
if(getenv("MULTISAMPLE") == NULL)
putenv("MULTISAMPLE=0");
if(getenv("TARGETFPS") == NULL)
putenv("TARGETFPS=60");
if(getenv("MAXPARTICLES") == NULL)
putenv("MAXPARTICLES=8192");
FILE *file;
char line[1024];
if (fopen_s(&file, "environ.ini", "r") == 0)
{
while (!feof(file))
{
if (fgets(line, sizeof(line), file))
{
for (int i = strlen(line); i >= 0; i--)
if (line[i] == '\n' || line[i] == '\r')
line[i] = 0;
putenv(line);
}
}
fclose(file);
}
DEBUG_STREAM << "Red Planet v4.10" << std::endl << std::flush;
DEBUG_STREAM << "L4CONTROLS=" << getenv("L4CONTROLS") << std::endl << std::flush;
// GetProcessAffinityMask(GetCurrentProcess(),
DWORD_PTR res = SetThreadAffinityMask(GetCurrentThread(), (DWORD_PTR)1);
if (res == 0)
{
DWORD err = GetLastError();
DEBUG_STREAM << "Could not set thread affinity. Err Code = " << err << std::endl << std::flush;
}
//
//----------------------------------------------------------------------
// Parse command line for an egg notation file name
//----------------------------------------------------------------------
//
int argc;
LPWSTR* argv = CommandLineToArgvW(GetCommandLineW(), &argc);
Logical run_application = RPL4Application::ParseCommandLine(argc, argv);
if (!run_application)
{
return 1;
}
else
{
Start_Registering();
}
//
//-------------------------------------------------------------------------
// Create our window. This is only temporary because this will move after
// the graphics are moved over.
//-------------------------------------------------------------------------
//
WNDCLASS wc;
if (!hPrevInstance)
{
wc.style = 0;
wc.lpfnWndProc = (WNDPROC) WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon((HINSTANCE) NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor((HINSTANCE) NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = L"MainWndClass";
if (!RegisterClass(&wc))
return FALSE;
}
DWORD wsStyle = WS_OVERLAPPED | WS_SYSMENU;
if (L4Application::GetFullscreen())
wsStyle = WS_POPUP;
hWnd = CreateWindowEx(0, L"MainWndClass", L"RPL4", WS_OVERLAPPEDWINDOW, 0, 0, L4Application::GetScreenWidth(), L4Application::GetScreenHeight(), (HWND)NULL, (HMENU)NULL, hInstance, (LPVOID)NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, nShowCmd);
#if !_DEBUG
ShowCursor(FALSE);
#endif
//
//-------------------------------------------------------------------------
// Open the resource file. The brace will help correct the scoping problem
// of destruction the resource file
//-------------------------------------------------------------------------
//
{
StreamableResourceFile resources("rpl4.res", version);
Check(&resources);
//
//----------------------------------------------
// Create and initialize the application manager
//----------------------------------------------
//
ApplicationManager* app_manager;
Application *new_app;
int review_mode = RPL4Application::GetMissionReviewMode();
if (review_mode > 0)
{
MissionReviewApplicationManager *spool_mgr = new MissionReviewApplicationManager(hInstance, hWnd, atoi(getenv("TARGETFPS")), (review_mode == 2) ? 1 : 2, SPOOL_SIZE);
app_manager = spool_mgr;
Register_Object(app_manager);
//
//-------------------------------------------------------------------
// Create and initialize the playback application if there is a spool
// file
//-------------------------------------------------------------------
//
#if 1
CString spoolFileName = L4Application::GetSpoolFileName();
if (!spoolFileName)
spoolFileName = "last.spl";
SpoolFile *spool = spool_mgr->GetStoredSpoolFile(spoolFileName);
if (spool)
{
new_app = new RPL4PlaybackApplication(hInstance, hWnd, &resources, spool);
} else
{
new_app = new RPL4IdleApplication(hInstance, hWnd, &resources);
}
Register_Object(new_app);
app_manager->StartApplication(new_app);
#else
new_app = new RPL4PlaybackApplication(hInstance, hWnd, &resources, NULL);
Register_Object(new_app);
app_manager->StartApplication(new_app);
#endif
//
//------------------------------------
// Initialize the spooling application
//------------------------------------
//
if (review_mode == 1)
{
new_app = new L4SpoolingApplication(hInstance, hWnd, &resources, RPL4);
Register_Object(new_app);
app_manager->StartApplication(new_app);
}
}
else
{
app_manager = new ApplicationManager(hInstance, hWnd, atoi(getenv("TARGETFPS")));
Register_Object(app_manager);
//
//--------------------------------------
// Create and initialize the application
//--------------------------------------
//
Application *new_app = new RPL4Application(hInstance, hWnd, &resources);
rpl4App = new_app;
Register_Object(new_app);
SetCursorPos(1680 / 2, 1050 / 2);
app_manager->StartApplication(new_app);
}
//
//--------------------------
// Run missions till we done
//--------------------------
//
app_manager->RunMissions();
rpl4App = NULL;
Unregister_Object(app_manager);
delete app_manager;
}
ShowCursor(TRUE);
Stop_Registering();
return Exit_Code;
}
+12
View File
@@ -0,0 +1,12 @@
#if !defined(RPL4_HPP)
# define RPL4_HPP
# if !defined(RP_HPP)
# include "..\RP\rp.hpp"
# endif
# if !defined(MUNGAL4_HPP)
# include "..\MUNGA_L4\mungal4.hpp"
# endif
#endif
BIN
View File
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
#include "..\rp\rp.h"
#include "..\munga_l4\mungal4.h"
+382
View File
@@ -0,0 +1,382 @@
#include "rpl4.h"
#pragma hdrstop
#include "rpl4app.h"
#include "rpl4vid.h"
#include "rpl4arnd.h"
#include "rpl4grnd.h"
#include "rpl4mssn.h"
#include "..\munga_l4\l4gauge.h"
#include "..\rp\rpreg.h"
#include "..\munga_l4\l4ctrl.h"
#include "..\munga_l4\l4mppr.h"
#include "..\munga\appmgr.h"
#include "rpl4mode.h"
#include "..\rp\vtv.h"
#include "rpl4mppr.h"
#include "..\rp\rpplayer.h"
//
//#############################################################################
// RPL4Application
//#############################################################################
//
RPL4Application::RPL4Application(
HINSTANCE hInstance,
HWND hWnd,
ResourceFile *resource_file,
ClassID class_ID,
SharedData &shared_data
):
L4Application(hInstance, hWnd, resource_file, RPL4, class_ID, shared_data)
{
Check_Fpu();
}
//
//#############################################################################
// ~RPL4Application
//#############################################################################
//
RPL4Application::~RPL4Application()
{
Check_Fpu();
}
//
//#############################################################################
// MakeRegistry
//#############################################################################
//
Registry*
RPL4Application::MakeRegistry()
{
Check_Fpu();
return new RPRegistry(GetResourceFile());
}
//
//#############################################################################
// MakeVideoRenderer
//#############################################################################
//
VideoRenderer*
RPL4Application::MakeVideoRenderer()
{
if (divisionParameters)
{
return
new RPL4VideoRenderer(
ghWnd,
L4Application::mScreenWidth,
L4Application::mScreenHeight,
L4Application::mFullscreen,
VisualInterestType,
DefaultInterestDepth
);
}
return NULL;
}
//
//#############################################################################
// MakeAudioRenderer
//#############################################################################
//
AudioRenderer*
RPL4Application::MakeAudioRenderer()
{
Check_Fpu();
// char *blaster1, *blaster2;
// blaster1 = getenv(FRONT_CARD_ENV_VAR);
// blaster2 = getenv(REAR_CARD_ENV_VAR);
//if (blaster1 != NULL && blaster2 != NULL)
//{
return new RPL4AudioRenderer(
1000.0f,
GetMissionReviewMode()
);
//}
// return NULL;
}
//#############################################################################
// MakeModeManager
//#############################################################################
ModeManager*
RPL4Application::MakeModeManager()
{
RPL4ModeManager
*manager = new RPL4ModeManager(RPL4ModeManager::ModeInitial);
Check(manager);
return manager;
}
//
//#############################################################################
// MakeGaugeRenderer
//#############################################################################
//
GaugeRenderer*
RPL4Application::MakeGaugeRenderer(int *secondaryIndex, int *aux1Index, int *aux2Index)
{
char *mode_string = getenv("L4GAUGE");
if (mode_string != NULL && (secondaryIndex != NULL || aux1Index != NULL || aux2Index != NULL))
{
return new RPL4GaugeRenderer(!L4Application::mFullscreen, secondaryIndex, aux1Index, aux2Index);
}
return NULL;
}
//
//#############################################################################
// MakeMission
//#############################################################################
//
Mission*
RPL4Application::MakeMission(
NotationFile *notation_file,
ResourceFile *resources
)
{
Check(this);
Check(notation_file);
Check(resources);
Check_Fpu();
return new RPL4Mission(notation_file, resources);
}
//
//#############################################################################
// MakeViewpointEntity
//#############################################################################
//
Entity*
RPL4Application::MakeViewpointEntity(Entity::MakeMessage *message)
{
Check(this);
// Entity
// *viewing_entity = L4Application::MakeViewpointEntity(message);
//
// if(viewing_entity)
// {
// Check_Fpu();
// return viewing_entity;
// }
LBE4ControlsManager* controls =
(LBE4ControlsManager *)GetControlsManager();
Check(controls);
Entity
*viewing_entity = NULL;
char
*primary_mapping_name = NULL;
switch(message->classToCreate)
{
case CameraShipClassID:
//=======================================================================
// Create Camera ship
//=======================================================================
{
CameraShip
*viewing_camera =
CameraShip::Make((CameraShip::MakeMessage*)message);
Check(viewing_camera);
viewing_entity = viewing_camera;
//--------------------------------------------------
// Create controls mapping object
//--------------------------------------------------
CameraControlsMapper::SubsystemResource
control_subsystem_resource;
Str_Copy(
control_subsystem_resource.subsystemName,
"ControlsMapper",
sizeof(control_subsystem_resource.subsystemName)
);
control_subsystem_resource.classID = TrivialSubsystemClassID;
control_subsystem_resource.subsystemModelSize =
sizeof(control_subsystem_resource);
CameraControlsMapper
*camera_mapper;
switch (controls->primaryControlType)
{
case LBE4ControlsManager::PrimaryThrustMaster:
Tell("RPL4Application, CameraShip using ThrustMaster\n");
camera_mapper = new CameraThrustmasterMapper(
viewing_camera,
CameraShip::ControlsMapperSubsystem,
&control_subsystem_resource
);
primary_mapping_name = "Thrustmaster";
break;
case LBE4ControlsManager::PrimaryRIO:
Tell("RPL4Application, CameraShip using RIO\n");
camera_mapper = new CameraRIOMapper(
viewing_camera,
CameraShip::ControlsMapperSubsystem,
&control_subsystem_resource
);
primary_mapping_name = "L4";
break;
default:
Tell("RPL4Application, CameraShip using default mapper\n");
camera_mapper = new CameraL4Mapper(
viewing_camera,
CameraShip::ControlsMapperSubsystem,
&control_subsystem_resource
);
// primary mapping name is NULL
break;
}
//-------------------------------------------
// Set mapping subsystem for this entity
//-------------------------------------------
Register_Object(camera_mapper);
viewing_camera->SetMappingSubsystem(camera_mapper);
}
break;
case VTVClassID:
//=======================================================================
// Create VTV
//=======================================================================
{
VTV
*viewing_VTV = VTV::Make((VTV::MakeMessage*)message);
Check(viewing_VTV);
viewing_entity = viewing_VTV;
//--------------------------------------------------
// Set control deadbanding
//--------------------------------------------------
controls->SetJoystickDeadBand(.1);
controls->SetThrottleDeadBand(.1);
controls->SetPedalsDeadBand(.1);
//--------------------------------------------------
// Create controls mapping object
//--------------------------------------------------
VTVControlsMapper::SubsystemResource
control_subsystem_resource;
Str_Copy(
control_subsystem_resource.subsystemName,
"ControlsMapper",
sizeof(control_subsystem_resource.subsystemName)
);
control_subsystem_resource.classID = TrivialSubsystemClassID;
control_subsystem_resource.subsystemModelSize =
sizeof(control_subsystem_resource);
control_subsystem_resource.segmentIndex = -1;
control_subsystem_resource.subsystemFlags = 0;
VTVControlsMapper
*vtv_mapper;
switch (controls->primaryControlType)
{
case LBE4ControlsManager::PrimaryThrustMaster:
Tell("RPL4Application, VTV using ThrustMaster\n");
vtv_mapper = new VTVThrustmasterMapper(
viewing_VTV,
VTV::ControlsMapperSubsystem,
&control_subsystem_resource
);
primary_mapping_name = "Thrustmaster";
break;
case LBE4ControlsManager::PrimaryRIO:
Tell("RPL4Application, VTV using RIO\n");
vtv_mapper = new VTVRIOMapper(
viewing_VTV,
VTV::ControlsMapperSubsystem,
&control_subsystem_resource
);
primary_mapping_name = "L4";
break;
default:
DEBUG_STREAM << "*****VTV has no controls mapping!*****" << std::flush;
Fail("RPL4Application::MakeViewpointEntity");
vtv_mapper = NULL;
// primary mapping name is NULL
break;
}
//-------------------------------------------
// Set mapping subsystem for this entity
//-------------------------------------------
Register_Object(vtv_mapper);
viewing_VTV->SetMappingSubsystem(vtv_mapper);
//-------------------------------------------
// Enable collision detection for this entity
//-------------------------------------------
viewing_VTV->StartCollisionAssistant();
}
break;
}
Check(viewing_entity);
//------------------------------------------------------------------------
// Load up the control mapping stream for the entity
//------------------------------------------------------------------------
if (primary_mapping_name != NULL)
{
ResourceDescription
*resource_description =
application->GetResourceFile()->SearchList(
viewing_entity->GetResourceID(),
ResourceDescription::ControlMappingsListResourceType
);
if (resource_description != NULL)
{
Check(resource_description);
Check(GetResourceFile());
resource_description =
GetResourceFile()->SearchList(
resource_description->resourceID,
primary_mapping_name
);
if (resource_description != NULL)
{
Check(resource_description);
resource_description->Lock();
controls->CreateStreamedMappings(
viewing_entity,
(int*)resource_description->resourceAddress
);
resource_description->Unlock();
}
}
}
//------------------------------------------------------------------------
// Create gauges for this entity
//------------------------------------------------------------------------
RPL4GaugeRenderer
*gauge_renderer = (RPL4GaugeRenderer *) GetGaugeRenderer();
if (gauge_renderer != NULL)
{
Check(gauge_renderer);
gauge_renderer->ConfigureForModel("Init", viewing_entity);
}
Check_Fpu();
return viewing_entity;
}
+29
View File
@@ -0,0 +1,29 @@
#pragma once
#include "..\munga_l4\l4app.h"
//##########################################################################
//###################### RP4L4Application ############################
//##########################################################################
class RPL4Application : public L4Application
{
public:
RPL4Application(HINSTANCE hInstance, HWND hWnd, ResourceFile *resource_file, ClassID class_ID=L4ApplicationClassID, SharedData &shared_data=DefaultData);
~RPL4Application();
private:
Registry* MakeRegistry();
VideoRenderer* MakeVideoRenderer();
AudioRenderer* MakeAudioRenderer();
GaugeRenderer* MakeGaugeRenderer(int *secondaryIndex, int *aux1Index, int *aux2Index);
ModeManager* MakeModeManager();
Mission* MakeMission(NotationFile *notation_file, ResourceFile *resources);
Entity* MakeViewpointEntity(Entity__MakeMessage *);
};
+22
View File
@@ -0,0 +1,22 @@
#include "rpl4.h"
#pragma hdrstop
#include "rpl4arnd.h"
//
//#############################################################################
// RPL4AudioRenderer
//#############################################################################
//
RPL4AudioRenderer::RPL4AudioRenderer(RendererRate render_rate, Logical mission_review_mode) : L4AudioRenderer(render_rate, mission_review_mode)
{
}
//
//#############################################################################
// ~RPL4AudioRenderer
//#############################################################################
//
RPL4AudioRenderer::~RPL4AudioRenderer()
{
}
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include "..\munga_l4\l4audrnd.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~ RPL4AudioRenderer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class RPL4AudioRenderer : public L4AudioRenderer
{
public:
//
//-----------------------------------------------------------------------
// Construction, Destruction, Testing
//-----------------------------------------------------------------------
//
RPL4AudioRenderer(RendererRate render_rate, Logical mission_review_mode);
~RPL4AudioRenderer();
};
+3823
View File
File diff suppressed because it is too large Load Diff
+571
View File
@@ -0,0 +1,571 @@
#pragma once
#include "..\munga_l4\l4grend.h"
#include "..\munga_l4\l4gauge.h"
#include "..\munga\rotation.h"
#include "..\munga\random.h"
#include "..\munga\point3d.h"
//#########################################################################
//####################### Various gauge utilities #########################
//#########################################################################
extern int
determineEntityColor(Entity *entity, Entity *local_entity=NULL);
//#########################################################################
class Compass :
public GraphicGauge
{
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer *gauge_renderer
);
Compass(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int center_x, int center_y,
int radius,
int background_color,
const char *north_map_name,
const char *west_map_name,
const char *south_map_name,
const char *east_map_name,
const char *bug_map_name,
const char *identification_string = "Compass"
);
~Compass();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
BecameActive();
void
Execute();
protected:
enum
{
northIndex = 0,
eastIndex,
southIndex,
westIndex,
bugIndex,
numberOfItems
};
char
*imageName[numberOfItems];
Vector2DOf<int>
offset[numberOfItems],
previousPosition;
int
radius,
backgroundColor;
L4GaugeRenderer
*renderer;
GraphicsViewRecord
previousDrawing;
};
class ThreatIndicator :
public GraphicGauge
{
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer *gauge_renderer
);
ThreatIndicator(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int center_x, int center_y,
int inner_radius,
int outer_radius,
int bg_color,
int team_color,
int other_color,
Scalar sensing_radius,
const char *identification_string = "ThreatIndicator"
);
~ThreatIndicator();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
BecameActive(); // virtual function in 'GaugeBase'
void
Execute();
protected:
void
Select();
void
Draw();
Scalar
viewRadius,
topClosingVelocity;
int
innerRadius,
outerRadius,
backgroundColor,
teamColor,
otherColor,
operatingPhase;
GaugeEntityList
movingEntityList;
GraphicsViewRecord
previousDrawing;
};
class NavDisplay;
class NavName SIGNATURED // Used exclusively by NavDisplay
{
friend class NavDisplay;
NavName()
{}
~NavName()
{}
Logical
TestInstance() const
{
return True;
}
protected:
void
ExtractFromEntity(Entity *entity, AffineMatrix &worldToView);
static void
CalculatePositions(NavName *array, int count);
void
Draw(GraphicsView *graphics_view, Scalar radius_multiplier);
Point3D
center;
Vector3D
direction;
BitMap
*nameBitmap;
int
color;
};
class NavDisplay :
public GraphicGauge
{
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer *gauge_renderer
);
NavDisplay(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int left, int bottom,
int right, int top,
int bg_color,
int static_color,
Scalar *scale_value_pointer,
Point3D **position_pointer,
Quaternion **angle_pointer,
Logical allow_rock_and_roll=False,
const char *identification_string = "NavDisplay"
);
~NavDisplay();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
BecameActive();
void
Execute();
protected:
void
CalculateBounds();
void
SelectStatic();
void
SelectMoving();
void
DrawStatic(AffineMatrix &worldToView);
void
DrawMoving(AffineMatrix &worldToView);
void
DrawNames(AffineMatrix &worldToView);
enum
{
maximumNames = 16
};
NavName
nameArray[maximumNames];
Scalar
currentScale;
Point3D *
currentPositionPointer;
Quaternion *
currentAngularPointer;
Scalar
LODIndex,
pixelsPerMeter,
metersPerPixel,
xMin,
yMin,
zMin,
xMax,
yMax,
zMax;
AffineMatrix
worldToView;
int
operatingPhase,
backgroundColor,
staticColor,
halfWidth,
halfHeight;
Logical
rockAndRoll;
GaugeEntityList
staticEntityList,
movingEntityList;
GraphicsViewRecord
previousDrawing;
};
class GPS :
public GraphicGauge
{
struct GPSRecord
{
int x, y, color;
Logical me;
};
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer *gauge_renderer
);
GPS(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int left, int bottom,
int right, int top,
Scalar LOD_index,
const char *identification_string = "GPS"
);
~GPS();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
BecameActive(); // virtual function in 'GaugeBase'
void
NotifyOfNewInterestingEntity(Entity *entity);
void
Execute();
protected:
void
UpdateStaticEntities();
enum
{
max_moving_entities=32
};
Logical
needsStaticUpdate,
needsScreenUpdate;
Scalar
LODIndex,
metersPerPixel,
pixelsPerMeter;
Point3D
centeringOffset;
int
width,
height,
numberOfMovingEntities;
GPSRecord
previousGPSRecord[max_moving_entities];
Video8BitBuffered
*background;
};
//#######################################################################
// Ranking
//#######################################################################
class Ranking :
public GraphicGauge
{
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer * gauge_renderer
);
Ranking(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int top, int left,
const char *font_name,
int spacing,
int numeric_color,
int new_options,
const char *identification_string = "Ranking"
);
~Ranking();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
LinkToEntity(Entity *entity);
void
BecameActive();
void
Execute();
enum
{
useTeamColorOption=0x0001,
showAllScoresOption=0x0002,
showIcomOption=0x0004
};
protected:
char
*messageName;
enum
{
maximumDisplayedPlayers=8
};
Entity
*linkedEntity;
int
previousRanking;
int
x,
y,
options,
spacing,
width;
Player
*previousArray[maximumDisplayedPlayers];
Scalar
previousScore[maximumDisplayedPlayers];
NumericDisplay
*numericDisplay[maximumDisplayedPlayers];
Logical
previousIntercomEnabled;
int
previousChannel[maximumDisplayedPlayers];
NumericDisplay
*channelDisplay[maximumDisplayedPlayers];
};
//#######################################################################
// ConfigMap
//#######################################################################
class ConfigMap :
public GraphicGauge
{
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer * gauge_renderer
);
ConfigMap(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int top, int bottom,
const char *unmapped_icon,
const char *other_icon,
const char *my_icon,
const char *both_icon,
const char *identification_string = "ConfigMap"
);
~ConfigMap();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
LinkToEntity(Entity *entity);
void
BecameActive();
void
Execute();
protected:
Entity
*linkedEntity;
char
*iconName[4];
int
previousState[4];
};
//#######################################################################
// MessageBoard
//#######################################################################
class MessageBoard :
public GraphicGauge
{
public:
static MethodDescription
methodDescription;
static Logical
Make(
int display_port_index,
Vector2DOf<int> position,
Entity *entity,
GaugeRenderer * gauge_renderer
);
MessageBoard(
GaugeRate rate,
ModeMask mode_mask,
L4GaugeRenderer *renderer,
unsigned int owner_ID,
int graphics_port_number,
int left, int bottom,
int right, int top,
const char *font_name,
const char *message_name,
int bg_color,
int numeric_color,
const char *identification_string = "MessageBoard"
);
~MessageBoard();
Logical
TestInstance() const;
void
ShowInstance(char *indent);
void
LinkToEntity(Entity *entity);
void
BecameActive();
void
Execute();
protected:
NumericDisplay
*numericDisplay;
Entity
*linkedEntity;
char
*messageName;
int
backgroundColor,
fontHeight;
enum
{
deliberatelyBogusPointerValue = -1
};
Player
*previousPlayerPointer;
int
previousMessageType;
Scalar
previousValue;
};
+270
View File
@@ -0,0 +1,270 @@
#include "rpl4.h"
#pragma hdrstop
#include "rpl4grnd.h"
#include "..\munga_l4\l4lamp.h"
#include "..\munga\terrain.h"
#include "..\rp\demopack.h"
#include "rpl4gaug.h"
#include "rpl4mssn.h"
#include "..\munga\app.h"
#include <iostream>
// #define LOCAL_TEST
#if defined(LOCAL_TEST)
# define Test_Tell(n) std::cout << n << std::flush
#else
# define Test_Tell(n)
#endif
//
//#############################################################################
// RPL4MethodDescription list
//#############################################################################
//
//STUBBED: UNKNOWN RB 1/15/07
extern
MethodDescription
*L4MethodDescription[];
MethodDescription
RPL4ChainToPrevious = METHOD_DESCRIPTION_CHAIN(L4MethodDescription);
MethodDescription
*RPL4MethodDescription[] =
{
&Compass::methodDescription,
&ThreatIndicator::methodDescription,
&NavDisplay::methodDescription,
&GPS::methodDescription,
&Ranking::methodDescription,
&ConfigMap::methodDescription,
&MessageBoard::methodDescription,
&RPL4ChainToPrevious
};
//
//#############################################################################
// RPL4GaugeRenderer
//#############################################################################
//
RPL4GaugeRenderer::RPL4GaugeRenderer(bool windowed, int *secondaryIndex, int *aux1Gauge, int *aux2Gauge)
:
L4GaugeRenderer(windowed, secondaryIndex, aux1Gauge, aux2Gauge)
{
Check_Pointer(this);
static unsigned char
mask_list[] =
{ 0xFF, 0xBF, 0x7F, 0x3F };
//----------------------------------------
// Create lamp manager
//----------------------------------------
Check(application);
LBE4ControlsManager
*controls_manager = (LBE4ControlsManager*)
(application->GetControlsManager());
Check(controls_manager);
lampManager = new L4LampManager(controls_manager);
Register_Object(lampManager);
//----------------------------------------
// create warehouse
//----------------------------------------
warehousePointer = new L4Warehouse();
Register_Object(warehousePointer);
//----------------------------------------
// Initialize interpreter
//----------------------------------------
BuildConfigurationFile(
"gauge\\l4gauge.cfg",
RPL4MethodDescription
);
//----------------------------------------
// Enable secondary palette flashing
//----------------------------------------
((SVGA16 *) graphicsDisplay)->FlashPalette(
SVGA16::SecondaryPalette,
2.0, // two cycles (8 changes) per second
mask_list
);
Check_Fpu();
}
//
//#############################################################################
// ~RPL4GaugeRenderer
//#############################################################################
//
RPL4GaugeRenderer::~RPL4GaugeRenderer()
{
Check(this);
//----------------------------------------
// Make sure all gauges removed BEFORE
// we destroy the warehouse!!
//----------------------------------------
Remove(0);
//----------------------------------------
// destroy warehouse
//----------------------------------------
Check(warehousePointer);
Unregister_Object(warehousePointer);
delete warehousePointer;
warehousePointer = NULL;
Check_Fpu();
}
//
//#############################################################################
// TestInstance
//#############################################################################
//
Logical
RPL4GaugeRenderer::TestInstance() const
{
return GaugeRenderer::TestInstance();
}
//
//#############################################################################
// NotifyOfNewInterestingEntity
//#############################################################################
//
void
RPL4GaugeRenderer::NotifyOfNewInterestingEntity(Entity *entity)
{
Test_Tell("RPL4GaugeRenderer::NotifyOfNewInterestingEntity\n");
Check(this);
Check(entity);
//------------------------------------------------------
// If the entity has no gauge representation, discard it
//------------------------------------------------------
Check(application);
Check(application->GetResourceFile());
ResourceDescription
*resource_description =
application->GetResourceFile()->SearchList(
entity->GetResourceID(),
ResourceDescription::GaugeImageStreamResourceType
);
Test_Tell("resource_description = " << resource_description << "\n");
if (resource_description != NULL)
{
//
//---------------------------------------------------------
// Place object in either moving list or static array
//---------------------------------------------------------
//
if (entity->IsDerivedFrom(*Mover::GetClassDerivations()))
{
movingEntities.Add(entity);
}
else if (entity->IsDerivedFrom(*Terrain::GetClassDerivations()))
{
staticEntities.Add(entity);
}
}
//------------------------------------------------------
// Chain to "ancestor" method
//------------------------------------------------------
L4GaugeRenderer::NotifyOfNewInterestingEntity(entity);
Check_Fpu();
}
//
//#############################################################################
// StartImplementation
//#############################################################################
//
void
RPL4GaugeRenderer::LoadMissionImplementation(Mission *mission)
{
Check(this);
# if defined (LOCAL_TEST)
Tell("RPL4GaugeRenderer::LoadMissionImplementation()\n");
# endif
//------------------------------------------------------
// Chain to "ancestor" method
//------------------------------------------------------
L4GaugeRenderer::LoadMissionImplementation(mission);
Check_Fpu();
}
//
//#############################################################################
// StopImplementation
//#############################################################################
//
void
RPL4GaugeRenderer::ShutdownImplementation()
{
Check(this);
# if defined (LOCAL_TEST)
Tell("RPL4GaugeRenderer::ShutdownImplementation()\n");
# endif
//------------------------------------------------------
// Chain to "ancestor" method
//------------------------------------------------------
L4GaugeRenderer::ShutdownImplementation();
Check_Fpu();
}
//
//#############################################################################
// NotifyOfNewUninterestingEntity
//#############################################################################
//
void
RPL4GaugeRenderer::NotifyOfBecomingUninterestingEntity(Entity *entity)
{
Test_Tell("RPL4GaugeRenderer::NotifyOfBecomingUninterestingEntity\n");
Check(this);
Check(entity);
//------------------------------------------------------
// If the entity has no gauge representation, discard it
//------------------------------------------------------
Check(application);
Check(application->GetResourceFile());
ResourceDescription
*resource_description =
application->GetResourceFile()->SearchList(
entity->GetResourceID(),
ResourceDescription::GaugeImageStreamResourceType
);
Test_Tell("resource_description = " << resource_description << "\n");
if (resource_description != NULL)
{
//---------------------------------------------------------
// Place entity from either moving list or static array
//---------------------------------------------------------
if (entity->IsDerivedFrom(*Mover::GetClassDerivations()))
{
movingEntities.Remove(entity);
}
else if (entity->IsDerivedFrom(*DemolitionPack::GetClassDerivations()))
{
movingEntities.Remove(entity);
}
else if (entity->IsDerivedFrom(*Terrain::GetClassDerivations()))
{
staticEntities.Remove(entity);
}
}
//------------------------------------------------------
// Chain to "ancestor" method
//------------------------------------------------------
L4GaugeRenderer::NotifyOfBecomingUninterestingEntity(entity);
Check_Fpu();
}
+36
View File
@@ -0,0 +1,36 @@
#pragma once
#include "..\munga_l4\l4grend.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~ RPL4GaugeRenderer ~~~~~~~~~~~~~~~~~~~~~~~~~~
class RPL4GaugeRenderer : public L4GaugeRenderer
{
public:
//
//--------------------------------------------------------------------
// Construction, Destruction, Testing
//--------------------------------------------------------------------
//
RPL4GaugeRenderer(bool windowed, int *secondaryIndex, int *aux1Gauge, int *aux2Gauge);
~RPL4GaugeRenderer();
Logical TestInstance() const;
void NotifyOfNewInterestingEntity(Entity *entity);
void NotifyOfBecomingUninterestingEntity(Entity *entity);
//
//--------------------------------------------------------------------
// LoadMissionImplementation
// ShutdownImplementation
// SuspendImplementation
// ResumeImplementation
//
// These are virtual functions defined by the Renderer class.
// Derived classes must call these methods.
//--------------------------------------------------------------------
//
void LoadMissionImplementation(Mission *mission);
void ShutdownImplementation();
};
+60
View File
@@ -0,0 +1,60 @@
#include "rpl4.h"
#pragma hdrstop
#include "rpl4mode.h"
#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[] =
{
{"ModeNonConfig", RPL4ModeManager::ModeNonConfig},
{"ModeConfigReady", RPL4ModeManager::ModeConfigReady},
{"ModeConfigOn", RPL4ModeManager::ModeConfigOn},
{"ModePreset1", RPL4ModeManager::ModePreset1},
{"ModePreset2", RPL4ModeManager::ModePreset2},
{"ModePreset3", RPL4ModeManager::ModePreset3},
{"ModePreset4", RPL4ModeManager::ModePreset4},
{"ModePreset5", RPL4ModeManager::ModePreset5},
{"ModePreset6", RPL4ModeManager::ModePreset6},
{"ModeBasic", RPL4ModeManager::ModeBasic},
{"ModeStandard", RPL4ModeManager::ModeStandard},
{"ModeIntercom", RPL4ModeManager::ModeIntercom},
{"ModeConfiguring", RPL4ModeManager::ModeConfiguring},
{ NULL, (ModeMask)0}
};
Logical RPL4ModeManager::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);
}
+76
View File
@@ -0,0 +1,76 @@
#pragma once
#include "..\munga\mode.h"
//#########################################################################
//########################## RPL4ControlsManager ##########################
//#########################################################################
class RPL4ModeManager : public ModeManager
{
public:
enum
{
};
//-------------------------------------------------------------------
// Construction/destruction/verification
//-------------------------------------------------------------------
public:
RPL4ModeManager(ModeMask initial_mask):
ModeManager(initial_mask)
{}
//-------------------------------------------------------------------
// Mode control
//-------------------------------------------------------------------
enum
{
ModeNonConfigBit = ModeManager::nextModeBit,
ModeConfigReadyBit,
ModeConfigOnBit,
ModePreset1Bit,
ModePreset2Bit,
ModePreset3Bit,
ModePreset4Bit,
ModePreset5Bit,
ModePreset6Bit,
ModeBasicBit,
ModeStandardBit,
ModeIntercomBit
};
enum
{
ModePreset1 = 1L<<ModePreset1Bit,
ModePreset2 = 1L<<ModePreset2Bit,
ModePreset3 = 1L<<ModePreset3Bit,
ModePreset4 = 1L<<ModePreset4Bit,
ModePreset5 = 1L<<ModePreset5Bit,
ModePreset6 = 1L<<ModePreset6Bit,
ModeNonConfig = 1L<<ModeNonConfigBit,
ModeConfigReady = 1L<<ModeConfigReadyBit,
ModeConfigOn = 1L<<ModeConfigOnBit,
ModeBasic = 1L<<ModeBasicBit,
ModeStandard = 1L<<ModeStandardBit,
ModeIntercom = 1L<<ModeIntercomBit
};
// Handy combinations
enum
{
ModeConfiguring =
ModeConfigReady | ModeConfigOn,
ModeAllNonConfig =
ModePreset1 | ModePreset2 | ModePreset3 |
ModePreset4 | ModePreset5 | ModePreset6 |
ModeNonConfig,
ModeInitial = ModeNonConfig | ModeBasic
};
Logical // defined as virtual in MODE.HPP
ModeStringLookup(const char *name, ModeMask *returned_value);
};
+2056
View File
File diff suppressed because it is too large Load Diff
+316
View File
@@ -0,0 +1,316 @@
#pragma once
#include "..\rp\vtvmppr.h"
class L4Lamp;
//##########################################################################
//#################### ThrustmasterMapper ############################
//##########################################################################
class L4VTVControlsMapper:
public VTVControlsMapper
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Shared Data Support
//
public:
static Derivation *GetClassDerivations();
static SharedData DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Messaging Support
//
public:
enum {
KeypressMessageID = VTVControlsMapper::NextMessageID,
NextMessageID
};
void
KeypressMessageHandler(ReceiverDataMessageOf<ControlsKey> *message);
protected:
static const HandlerEntry
MessageHandlerEntries[];
//static MessageHandlerSet MessageHandlers;
static MessageHandlerSet& GetMessageHandlers();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Model Support
//
public:
typedef void
(L4VTVControlsMapper::*Performance)(Scalar time_slice);
void
SetPerformance(Performance performance)
{
Check(this);
activePerformance = (Simulation::Performance)performance;
}
void
CreateTemporaryEventMappings(
Receiver *receiver,
Receiver::MessageID config_message_id
),
RemoveTemporaryEventMappings(),
AddOrErase(
unsigned int button_ID,
Receiver *target,
Receiver::MessageID message_ID
),
AddOrErase(
unsigned int button_ID,
ControlsButton *destination
);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction and Destruction Support
//
public:
L4VTVControlsMapper(
VTV *player_vehicle,
int subsystem_ID,
SubsystemResource *subsystem_resource,
SharedData &shared_data = DefaultData
);
~L4VTVControlsMapper();
Logical
TestInstance() const;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Controls mode switching
//
void
SetControlsMode(int new_mode),
SetConfigurationMode(Logical new_state);
void
NotifyOfControlModeChange(int new_mode),
NotifyOfConfigurationModeChange(Logical new_state);
ModeMask
GetPresetModeMask()
{
Check(this);
return previousPresetModeMask;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Preset controls switching
//
void
PresetEnable(int preset_number);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Protected data
//
protected:
enum
{
presetCount = 6 // limited to number of switches!
};
ModeMask
previousPresetModeMask;
int
previousPresetNumber;
};
//##########################################################################
//#################### ThrustmasterMapper ############################
//##########################################################################
class VTVThrustmasterMapper:
public L4VTVControlsMapper
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Shared Data Support
//
public:
static Derivation *GetClassDerivations();
static SharedData DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Messaging Support
//
public:
void
KeypressMessageHandler(ReceiverDataMessageOf<ControlsKey> *message);
protected:
static const HandlerEntry
MessageHandlerEntries[];
static MessageHandlerSet
MessageHandlers;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Model Support
//
public:
typedef void
(VTVThrustmasterMapper::*Performance)(Scalar time_slice);
void
InterpretControls(Scalar time_slice);
void
SetPerformance(Performance performance)
{
Check(this);
activePerformance = (Simulation::Performance)performance;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction and Destruction Support
//
public:
VTVThrustmasterMapper(
VTV *player_vehicle,
int subsystem_ID,
SubsystemResource *subsystem_resource
);
~VTVThrustmasterMapper();
Logical
TestInstance() const;
private:
ControlsScalar
leftPedal,
rightPedal;
};
//##########################################################################
//########################### RIOMapper ##############################
//##########################################################################
class VTVRIOMapper :
public L4VTVControlsMapper
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Shared Data Support
//
public:
static Derivation *GetClassDerivations();
static SharedData DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Messaging Support
//
public:
enum {
SwitchModeMessageID = L4VTVControlsMapper::NextMessageID,
SelectPresetMessageID,
CenterJoystickMessageID,
ConfigureControlsMessageID, // duplicate of VTVControlsMapper msg
NextMessageID
};
void
KeypressMessageHandler(ReceiverDataMessageOf<ControlsKey> *message);
void
SwitchModeMessageHandler(
ReceiverDataMessageOf<ControlsButton> *message
);
void
SelectPresetMessageHandler(
ReceiverDataMessageOf<ControlsButton> *message
);
void
CenterJoystickMessageHandler(
ReceiverDataMessageOf<ControlsButton> *message
);
void
ConfigureControlsMessageHandler(
ReceiverDataMessageOf<ControlsButton> *message
);
protected:
static const HandlerEntry
MessageHandlerEntries[];
static MessageHandlerSet
MessageHandlers;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Model Support
//
public:
typedef void
(VTVRIOMapper::*Performance)(Scalar time_slice);
void
InterpretControls(Scalar time_slice);
void
NotifyOfControlModeChange(int new_mode);
void
NotifyOfConfigurationModeChange(Logical new_state);
void
SetPerformance(Performance performance)
{
Check(this);
activePerformance = (Simulation::Performance)performance;
}
void
AddOrErase(
unsigned int button_ID,
Receiver *target,
Receiver::MessageID message_ID
);
void
AddOrErase(
unsigned int button_ID,
ControlsButton *destination
);
void
AddOrErase(
unsigned int button_ID,
Scalar *destination
);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction and Destruction Support
//
public:
VTVRIOMapper(
VTV *player_vehicle,
int subsystem_ID,
SubsystemResource *subsystem_resource
);
~VTVRIOMapper();
Logical
TestInstance() const;
protected:
int
previousControlMode;
enum
{
configLampCount=2,
modeLampCount=4
};
L4Lamp
*configLamp[configLampCount],
*modeLamp[modeLampCount],
*presetLamp[presetCount];
private:
ControlsButton
throttleUp,
throttleDown,
throttleReverse;
ControlsScalar
leftPedal,
rightPedal;
};
+306
View File
@@ -0,0 +1,306 @@
#include "rpl4.h"
#pragma hdrstop
#include "rpl4mssn.h"
#include "..\munga_l4\l4grend.h"
#include "..\munga_l4\l4app.h"
#include "..\munga\notation.h"
#include "..\munga_l4\l4host.h"
#include "..\munga\hostmgr.h"
#include "..\munga\namelist.h"
//##########################################################################
//########################### RPL4Mission ############################
//##########################################################################
//
//#############################################################################
//#############################################################################
//
RPL4Mission::RPL4Mission(
NotationFile *notation_file,
ResourceFile *resources
):
RPMission(notation_file, resources)
{
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
RPL4Mission::~RPL4Mission()
{
Check(this);
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
void
RPL4Mission::SetPlayerData(NotationFile *notation_file)
{
Check(this);
//
//--------------------------------------------------------------
// Figure out which page we should be using to create the player
//--------------------------------------------------------------
//
Check(application);
HostManager *host_manager = application->GetHostManager();
Check(host_manager);
L4Host *host = (L4Host*)host_manager->GetLocalHost();
Check(host);
CString
player_node = host->GetSymbolicName();
//
//----------------------------------------------------------
// Copy the game model and dropzone strings into the mission
//----------------------------------------------------------
//
gameModel = NULL;
const char* player_model = NULL;
notation_file->GetEntry(player_node, "vehicle", &player_model);
if (!player_model)
{
DEBUG_STREAM << "Error: vehicle not specified!\n" << std::flush;
PostQuitMessage(AbortExitCodeID);
}
Check_Pointer(player_model);
gameModel = strdup(player_model);
Register_Pointer(gameModel);
dropZoneName = NULL;
const char* drop_zone = NULL;
notation_file->GetEntry(player_node, "dropzone", &drop_zone);
if (!drop_zone)
{
DEBUG_STREAM << "Error: dropzone not specified!\n" << std::flush;
PostQuitMessage(AbortExitCodeID);
}
Check_Pointer(drop_zone);
dropZoneName = strdup(drop_zone);
Register_Pointer(dropZoneName);
dropZoneHost = False;
notation_file->GetEntry(player_node, "loadzones", &dropZoneHost);
colorName = NULL;
const char* color_name = NULL;
notation_file->GetEntry(player_node, "color", &color_name);
if (!color_name)
{
DEBUG_STREAM << "Error: color not specified!\n" << std::flush;
PostQuitMessage(AbortExitCodeID);
}
Check_Pointer(color_name);
colorName = strdup(color_name);
Register_Pointer(colorName);
badgeName = NULL;
const char* badge_name = NULL;
notation_file->GetEntry(player_node, "badge", &badge_name);
if (!badge_name)
{
DEBUG_STREAM << "Error: badge not specified!\n" << std::flush;
PostQuitMessage(AbortExitCodeID);
}
Check_Pointer(badge_name);
badgeName = strdup(badge_name);
Register_Pointer(badgeName);
//
//~~~~~~~~~~~~~~~~~~~~~~
// Get playerBitmapIndex
//~~~~~~~~~~~~~~~~~~~~~~
//
if (!notation_file->GetEntry(
player_node,
"bitmapindex",
&playerBitmapIndex
)
)
{
DEBUG_STREAM<<"No bitmapindex in egg"<<std::endl << std::flush;
}
else
{
//--------------------------------------------------------
// Show the bitmap on the plasma display (if it exists)
//--------------------------------------------------------
//
BitMap *bitmap = GetLargeNameBitmap(playerBitmapIndex);
if (bitmap)
{
Check(application);
L4GaugeRenderer
*gauge_renderer=((L4Application*)application)->
GetGaugeRenderer();
if (gauge_renderer != NULL)
{
Check(gauge_renderer);
GraphicsDisplay *graphics_display =
gauge_renderer->GetExternalDisplay();
if (graphics_display != NULL)
{
graphics_display->DrawBitMapOpaque(
1, // foreground color
0, // background color
0xFF, // bitmask
GraphicsDisplay::Replace, // operation
0, // rotation
0,0, // position
bitmap,
0, // sx1
0, // sy1
bitmap->Data.Size.x-1, // sx2
bitmap->Data.Size.y-1 // sy2
);
graphics_display->Update(True);
graphics_display->WaitForUpdate();
}
}
}
}
//
//----------------------------------------------------------
// scoreCompression
//----------------------------------------------------------
//
scoreCompression = False;
const char* score_compression = NULL;
notation_file->GetEntry("mission", "compression", &score_compression);
if (!score_compression)
{
scoreCompression = False;
}
else if (strcmp("1", score_compression) == 0)
{
scoreCompression = True;
}
else
{
scoreCompression = False;
}
//
//-----------------------------------------------
// Get the position name "General" if not listed
//-----------------------------------------------
//
positionName = NULL;
const char* position_name = NULL;
notation_file->GetEntry(player_node, "position", &position_name);
if(!position_name)
{
position_name = strdup("General");
}
Check_Pointer(position_name);
positionName = strdup(position_name);
Register_Pointer(positionName);
//
//---------------------------------------
// Assign an integer value for the teamID
//---------------------------------------
//
const char* team_name;
notation_file->GetEntry(player_node, "team", &team_name);
int team_count;
NameList
*team_namelist = notation_file->MakeEntryList("teams");
teamID = -1;
if (team_namelist)
{
Register_Object(team_namelist);
team_count = team_namelist->EntryCount();
if(team_count)
{
int current_id=0;
NameList::Entry *team_entry = team_namelist->GetFirstEntry();
while(team_entry)
{
if (strcmp(team_name, team_entry->GetChar()) == 0)
{
teamID = current_id;
break;
}
current_id++;
team_entry = team_entry->GetNextEntry();
}
}
Unregister_Object(team_namelist);
delete team_namelist;
}
Check_Fpu();
}
//
//#############################################################################
//#############################################################################
//
Logical
RPL4Mission::TestInstance() const
{
RPMission::TestInstance();
return True;
}
#if 0
//
//#############################################################################
//#############################################################################
//
void
RPL4Mission::CreatePlayerMessage(
NotationFile *notation_file,
StreamableResourceFile *resources
)
{
Check(this);
Check(notation_file);
Check(resources);
Check(application);
HostManager *host_manager = application->GetHostManager();
Check(host_manager);
L4Host *host = (L4Host*)host_manager->GetLocalHost();
Check(host);
CString player_node = host->GetSymbolicName();
const char* player_model = NULL;
notation_file->GetEntry(player_node, "gamemodel", &player_model);
Check_Pointer(player_model);
ResourceDescription *vtv =
resources->FindResourceDescription(
player_model,
ResourceDescription::ModelListResourceType
);
Check(vtv);
VTV::MakeMessage *create_player =
new VTV::MakeMessage(
VTV::MakeMessageID,
sizeof(VTV::MakeMessage),
EntityID(host_manager->GetLocalHostID()),
VTV::VTVClassID,
EntityID::Null,
vtv->resourceID,
VTV::DefaultFlags|VTV::InitialStasisFlag,
Origin(Point3D(0.0f, 10.0f, 0.0f), Quaternion::Identity),
Motion::Identity,
Motion::Identity
);
Register_Object(create_player);
AdoptCreatePlayerMessage(create_player);
Check_Fpu();
}
#endif
+18
View File
@@ -0,0 +1,18 @@
#pragma once
#include "..\rp\rpmssn.h"
//##########################################################################
//########################### RPL4Mission ############################
//##########################################################################
class RPL4Mission : public RPMission
{
public:
RPL4Mission(NotationFile *notation_file, ResourceFile *resources);
~RPL4Mission();
Logical TestInstance() const;
void SetPlayerData(NotationFile *notation_file);
};
+566
View File
@@ -0,0 +1,566 @@
#include "rpl4.h"
#pragma hdrstop
#include "rpl4pb.h"
#include "..\munga_l4\l4video.h"
#include "..\munga\mission.h"
#include "..\munga_l4\l4net.h"
#include "..\munga\update.h"
#include "..\munga\renderer.h"
#include "..\munga\cammppr.h"
#include "..\munga\icom.h"
#include "..\munga\nttmgr.h"
#include "..\rp\rpplayer.h"
#include "..\munga\dropzone.h"
#include "..\rp\vtv.h"
#include "..\munga\director.h"
// RB 1/14/07
//#include <dpl\matrix.h>
//#############################################################################
//########################## RPSpoolerTask ##############################
//#############################################################################
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
RPSpoolerTask::RPSpoolerTask()
{
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RPSpoolerTask::DispatchPacket(NetworkPacket *packet)
{
RPL4PlaybackApplication *playback_app =
Cast_Object(RPL4PlaybackApplication*,application);
playback_app->DispatchPacket(packet);
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
long
RPSpoolerTask::GetTimeBias()
{
RPL4PlaybackApplication *playback_app =
Cast_Object(RPL4PlaybackApplication*,application);
Check_Fpu();
return playback_app->GetTimeBias();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
RPSpoolerTask::~RPSpoolerTask()
{
Check_Fpu();
}
RPL4IdleApplication::RPL4IdleApplication(HINSTANCE hInstance, HWND hWnd, ResourceFile *resource)
:RPL4Application(hInstance, hWnd, resource)
{
}
RPL4IdleApplication::~RPL4IdleApplication()
{
}
NetworkManager *RPL4IdleApplication::MakeNetworkManager()
{
Check_Fpu();
return new L4PlaybackNetworkManager;
}
Registry *RPL4IdleApplication::MakeRegistry()
{
return NULL;
}
void RPL4IdleApplication::LoadBackgroundTasks()
{
Check(this);
ApplicationTask *application_task;
application_task = new GaugeRendererTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
}
Logical RPL4IdleApplication::ExecuteForeground(Time start_of_frame, Scalar frame_duration)
{
RPL4Application::ExecuteForeground(start_of_frame, frame_duration);
return 0;
}
Logical RPL4IdleApplication::Shutdown(int remainingApps)
{
if (remainingApps > 1)
{
return 1;
} else
{
RPL4Application::Shutdown(remainingApps);
return 0;
}
}
void
RPL4IdleApplication::Initialize()
{
Check(this);
L4Application::InitializeTillConsole();
}
//#############################################################################
//####################### RPL4PlaybackApplication #######################
//#############################################################################
const Receiver::HandlerEntry
RPL4PlaybackApplication::MessageHandlerEntries[]=
{
MESSAGE_ENTRY(RPL4PlaybackApplication, RunMission),
MESSAGE_ENTRY(RPL4PlaybackApplication, StopMission)
};
Receiver::MessageHandlerSet& RPL4PlaybackApplication::GetMessageHandlers()
{
static Receiver::MessageHandlerSet messageHandlers(ELEMENTS(RPL4PlaybackApplication::MessageHandlerEntries), RPL4PlaybackApplication::MessageHandlerEntries, RPL4Application::GetMessageHandlers());
return messageHandlers;
}
Derivation* RPL4PlaybackApplication::GetClassDerivations()
{
static Derivation classDerivations(RPL4Application::GetClassDerivations(), "RPL4PlaybackApplication");
return &classDerivations;
}
RPL4PlaybackApplication::SharedData
RPL4PlaybackApplication::DefaultData(
RPL4PlaybackApplication::GetClassDerivations(),
RPL4PlaybackApplication::GetMessageHandlers()
);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
RPL4PlaybackApplication::RPL4PlaybackApplication(
HINSTANCE hInstance,
HWND hWnd,
ResourceFile *resource_file,
SpoolFile *spool_file
):
RPL4Application(hInstance, hWnd, resource_file, L4ApplicationClassID, DefaultData)
{
Check(spool_file);
spoolFile = spool_file;
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
NetworkManager*
RPL4PlaybackApplication::MakeNetworkManager()
{
Check_Fpu();
return new L4PlaybackNetworkManager;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RPL4PlaybackApplication::Initialize()
{
Check(this);
L4Application::InitializeTillConsole();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RPL4PlaybackApplication::LoadBackgroundTasks()
{
Check(this);
//
//--------------------------------------------------------------------------
// Add background tasks
//--------------------------------------------------------------------------
//
ApplicationTask *application_task;
application_task = new RPSpoolerTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
application_task = new ProcessEventTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
application_task = new GaugeRendererTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
application_task = new CompleteCyclesTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
application_task = new FryDeathRowTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
application_task = new AudioRendererTask;
Register_Object(application_task);
backgroundTasks->AddTask(application_task);
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
Logical
RPL4PlaybackApplication::ExecuteForeground(
Time start_of_frame,
Scalar frame_duration
)
{
SET_FOREGROUND_PROCESSING();
Check(this);
Verify(application == this);
if (!executeFrames || GetApplicationState() == WaitingForEgg)
{
videoRenderer->ExecuteIdle();
CLEAR_FOREGROUND_PROCESSING();
return executeFrames && !Exit_Code;
}
Time
frame_ticks;
frame_ticks = frame_duration;
if (RPL4Application::GetMissionReviewMode() == 2)
{
//
//--------------------------------------------------------------------------
// Controls Manager
//
// Poll all devices, update all control variables.
//
// This is executed before the update manager so that the
// models have valid control values. It is not necessary for
// the controls to operate at the frame rate of this loop. If
// the controls manager can run run at a lower rate it can
// throttle itself internally.
//--------------------------------------------------------------------------
//
Check(controlsManager);
controlsManager->Execute();
}
//
//--------------------------------------------------------------------------
// Update Manager
//
// Execute replicants.
// Execute master entities if they are interesting here or
// elsewhere.
// Inform interest manager of possible interest zone change.
// If the master entity has provided and update message then
// send it to replicants.
//
// This is executed before the interest manager so that the
// interest manager can merge all interest zone changes before
// broadcasting interest arena deltas and building interesting
// entity lists.
//
// This is executed before the renderers so that the watchers
// have executed on the model and are ready for use by the
// renderers.
//--------------------------------------------------------------------------
//
SET_UPDATE_MANAGER();
Check(updateManager);
updateManager->Execute(start_of_frame);
CLEAR_UPDATE_MANAGER();
//
//--------------------------------------------------------------------------
// Interest Manager
//
// Update the net interest arena.
// Calculate which interest zones should be released and which
// interest zones should be loaded
// Send a becoming uninteresting and becoming interesting
// message to the entity.
// Broadcast the interest arena change
//
// The renderer manager call, update interest origins will
// update only those interest origins required by the renderers
// executing this frame.
//
// This is executed before the renderer manager so that when
// the renderers execute they execute upon interest lists that
// are valid as of the end of a model/update frame.
//
// In theory the interest manager does not have to run every
// frame. If throttled less, this would cause fuzz at interest
// zone borders, which may or may not be acceptable depending
// on the size of the interest arena.
//--------------------------------------------------------------------------
//
Check(rendererManager);
rendererManager->UpdateInterestOrigins(start_of_frame);
Check(interestManager);
interestManager->Execute();
//
//--------------------------------------------------------------------------
// Renderer Manager
//
// Execute renderers.
// Get interest list from interest manager.
// Poll watchers.
//
// It is not necessary for all renderers to operate at the frame
// rate of this loop. If a renderer can run at a lower rate it
// does so via the renderer manager which will govern if a
// renderer executes this frame.
//--------------------------------------------------------------------------
//
SET_RENDERER_MANAGER();
Check(rendererManager);
rendererManager->Execute(start_of_frame, frame_ticks, frame_ticks);
CLEAR_RENDERER_MANAGER();
//
//--------------------------------------------------------------------------
// Intercom Manager
//--------------------------------------------------------------------------
//
Check(intercomManager);
intercomManager->Execute();
//
//--------------------------------------------------------------------------
// Execution statistics
//--------------------------------------------------------------------------
//
if (GetApplicationState() == RunningMission)
{
secondsRemainingInGame =
currentMission->GetGameLength() - (Now() - gameStarted);
}
CLEAR_FOREGROUND_PROCESSING();
Check_Fpu();
return executeFrames && !Exit_Code;
}
//
//#############################################################################
// ExecuteBackgroundTask
//#############################################################################
//
void
RPL4PlaybackApplication::ExecuteBackgroundTask()
{
Check(this);
//
// If there exists a high priority event, execute it
//
if (ProcessOneEvent(HighEventPriority))
{
return;
}
//
// Execute lower priority tasks
//
Check(backgroundTasks);
backgroundTasks->Execute();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
RPL4PlaybackApplication::~RPL4PlaybackApplication()
{
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RPL4PlaybackApplication::DispatchPacket(NetworkPacket *packet)
{
Check(this);
NetworkManager *net_mgr = GetNetworkManager();
Check(net_mgr);
NetworkClient *client = net_mgr->GetNetworkClientPointer(packet->clientID);
Check(client);
client->ReceiveNetworkPacket(packet, &packet->messageData);
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RPL4PlaybackApplication::RunMissionMessageHandler(
RunMissionMessage *message
)
{
Check(this);
//
//------------------------------------------------------------------------
// If the application is waiting to launch, synchronize the clock stuff up
//------------------------------------------------------------------------
//
if (GetApplicationState() == WaitingForLaunch)
{
SpoolFile *spool = GetSpoolFile();
Check(spool);
NetworkPacket *packet = (NetworkPacket*)spool->GetPointer();
Verify(packet->messageData.messageID == RunMissionMessageID);
timeBias = Now().ticks - packet->timeStamp.ticks;
spool->NextPacket();
}
RPL4Application::RunMissionMessageHandler(message);
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
char winners_spot[]="win?";
void
RPL4PlaybackApplication::StopMissionMessageHandler(
StopMissionMessage *message
)
{
//STUBBED: DPL RB 1/14/07
MissionReviewApplicationManager *app_mgr = GetApplicationManager();
Check(app_mgr);
SpoolFile *spool = GetSpoolFile();
if (spool)
{
Check(spool);
app_mgr->ReleaseSpoolFile(spool);
spoolFile = NULL;
//
//------------------------
// Find the dropzone group
//------------------------
//
EntityManager *entity_manager = application->GetEntityManager();
Check(entity_manager);
EntityGroup *dropzones = entity_manager->FindGroup("DropZones");
Check(dropzones);
char *place = winners_spot+3;
Player *p;
//
//----------------------------------------------------------------------
// Move all the players into their final positions in the winners circle
//----------------------------------------------------------------------
//
for (
int rank=0;
(p = CameraDirector::FindPlayerByRank(rank)) != NULL;
++rank
)
{
//
//-----------------------------------------------------------------
// Now find the dropzone appropriate to the rank. If one cannot be
// found, ignore this vehicle
//-----------------------------------------------------------------
//
Verify(rank<10);
*place = (char)('1' + rank);
ChainIteratorOf<Node*> iterator(dropzones->groupMembers);
DropZone *dropzone;
while ((dropzone = (DropZone*)iterator.ReadAndNext()) != NULL)
{
if (!strcmp(dropzone->GetDropZoneName(), winners_spot))
{
break;
}
}
if (!dropzone)
{
continue;
}
//
//---------------------------------------------------------------------
// Get the location of this dropzone, and reset the vehicle to place it
// where specified
//---------------------------------------------------------------------
//
VTV *vtv = (VTV*)p->GetPlayerVehicle();
if (vtv->GetClassID() == VTVClassID)
{
vtv->Reset(dropzone->localOrigin, VTV::MissionReviewReset);
vtv->SetPerformance(&VTV::DoNothing);
vtv->FlushEvents();
}
}
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Reload the NameBitmaps for the Winners Circle
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
DPLRenderer *dpl_renderer = GetVideoRenderer();
Check(dpl_renderer);
dpl_renderer->SortAndReloadNameBitmaps();
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Set the Viewing Angle to 45 Degrees for Winners Circle
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
dpl_renderer->SetViewAngle(Degree(45.0f));
//
//~~~~~~~~~~~~~~~~~~~~~~~
// Set the Lighting Angle
//~~~~~~~~~~~~~~~~~~~~~~~
//
for(int ii=0;ii<dpl_renderer->sceneLightCount;++ii)
{
//dpl_RotateDCS(dpl_renderer->sceneLightDCS[ii], 0.0, dpl_Z);
//dpl_RotateDCS(dpl_renderer->sceneLightDCS[ii], 150.0, dpl_Y);
//dpl_RotateDCS(dpl_renderer->sceneLightDCS[ii], -30.0, dpl_X);
//dpl_FlushDCS (dpl_renderer->sceneLightDCS[ii]);
}
}
//
//---------------------------------------
// Let the application stop regularly now
//---------------------------------------
//
RPL4Application::StopMissionMessageHandler(message);
Check_Fpu();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
Logical
RPL4PlaybackApplication::TestInstance() const
{
return IsDerivedFrom(*GetClassDerivations());
}
+121
View File
@@ -0,0 +1,121 @@
#pragma once
#include "rpl4app.h"
#include "..\munga_l4\l4splr.h"
//##########################################################################
//####################### RPSpoolerTask ##############################
//##########################################################################
class RPSpoolerTask:
public SpoolerTask
{
public:
RPSpoolerTask();
~RPSpoolerTask();
void
DispatchPacket(NetworkPacket *packet);
long
GetTimeBias();
};
class RPL4IdleApplication : public RPL4Application
{
public:
RPL4IdleApplication (HINSTANCE hInstance, HWND hWnd, ResourceFile *resource);
~RPL4IdleApplication();
MissionReviewApplicationManager*
GetApplicationManager()
{
return
(MissionReviewApplicationManager*)
Application::GetApplicationManager();
}
Logical Shutdown(int remainingApps);
protected:
Registry* MakeRegistry();
NetworkManager* MakeNetworkManager();
void LoadBackgroundTasks();
Logical ExecuteForeground(Time start_of_frame, Scalar frame_duration);
void Initialize();
};
//##########################################################################
//#################### RPPlaybackApplication ##########################
//##########################################################################
class RPL4PlaybackApplication:
public RPL4Application
{
public:
RPL4PlaybackApplication(
HINSTANCE hInstance,
HWND hWnd,
ResourceFile *resource,
SpoolFile *spool_file = NULL
);
~RPL4PlaybackApplication();
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;
static MessageHandlerSet& GetMessageHandlers();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Shared Data Support
//
public:
//static Derivation *GetClassDerivations();
static Derivation *GetClassDerivations();
static SharedData DefaultData;
void
RunMissionMessageHandler(RunMissionMessage *message);
void
StopMissionMessageHandler(StopMissionMessage *message);
};
+363
View File
@@ -0,0 +1,363 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="RPL4TOOL"
ProjectGUID="{11BDE691-E0D7-443E-A5AF-87B35B8EEAEE}"
RootNamespace="RPL4TOOL"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib dinput8.lib dxguid.lib"
LinkIncremental="2"
AdditionalLibraryDirectories="..\lib"
GenerateDebugInformation="true"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Remote Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\RP\BLOCKER.cpp"
>
</File>
<File
RelativePath="..\RP\BOOSTER.cpp"
>
</File>
<File
RelativePath="..\RP\CHUTE.cpp"
>
</File>
<File
RelativePath="..\RP\CRUSHER.cpp"
>
</File>
<File
RelativePath="..\RP\DEMOPACK.cpp"
>
</File>
<File
RelativePath="..\RP\RIVET.cpp"
>
</File>
<File
RelativePath="..\RP\RPCNSL.cpp"
>
</File>
<File
RelativePath="..\RP\RPDIRECT.cpp"
>
</File>
<File
RelativePath=".\RPL4MODE.cpp"
>
</File>
<File
RelativePath=".\RPL4TOOL.cpp"
>
</File>
<File
RelativePath="..\RP\RPMSSN.cpp"
>
</File>
<File
RelativePath="..\RP\RPPLAYER.cpp"
>
</File>
<File
RelativePath="..\RP\RPREG.cpp"
>
</File>
<File
RelativePath="..\RP\RPTOOL.cpp"
>
</File>
<File
RelativePath="..\RP\RUNNER.cpp"
>
</File>
<File
RelativePath="..\RP\SCORZONE.cpp"
>
</File>
<File
RelativePath="..\RP\THRUSTER.cpp"
>
</File>
<File
RelativePath="..\RP\VTV.cpp"
>
</File>
<File
RelativePath="..\RP\VTVMPPR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVPWR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVSUB.cpp"
>
</File>
<File
RelativePath="..\RP\WEAPSYS.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\RP\RPTOOL.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+78
View File
@@ -0,0 +1,78 @@
#include "rpl4.h"
#pragma hdrstop
#include <conio.h>
#include "..\rp\rptool.h"
#include "rpl4mode.h"
#include "..\munga_l4\l4tool.h"
#include "rpl4ver.h"
class RPL4Tool :
public L4Tool
{
public:
RPL4Tool() : L4Tool()
{
modeManager = new RPL4ModeManager(RPL4ModeManager::ModeInitial);
}
~RPL4Tool()
{
delete modeManager;
modeManager = NULL;
}
Logical ConvertStringToModeMask(const char *name, ModeMask *returned_value_ptr)
{
return modeManager->ModeStringLookup(name, returned_value_ptr);
}
protected:
RPL4ModeManager *modeManager;
};
//##########################################################################
//################## RP4L4Application Globals ########################
//##########################################################################
extern const char* const ProgName;
const char* const ProgName = "rpl4tool";
//
//#############################################################################
// main
//#############################################################################
//
int main(int argc, char *argv[])
{
int status;
if (argc < 3)
{
Usage:
DEBUG_STREAM << "Building Usage: rpl4tool -b rpl4.bld [res2.bld]\n" << " Listing Usage: rpl4tool -l rpl4.res [res2.res ...]\n" << std::flush;
status = 1;
}
else
{
RPL4Tool rpl4_tool;
RPTool rp_l4_tool(&rpl4_tool);
L4AudioCreateSymbols create_symbols;
if (!strcmp(argv[1], "-b"))
{
status = rp_l4_tool.BuildResources(argc-1, &argv[1], create_symbols, MINOR_DATA_VERSION);
}
else if (!strcmp(argv[1], "-l"))
{
status = rp_l4_tool.ListResources(argc-1, &argv[1]);
}
else
{
DEBUG_STREAM << "Error: Unknown tool switch!\n" << std::flush;
goto Usage;
}
}
_getch();
return status;
}
+372
View File
@@ -0,0 +1,372 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="RPL4TOOL"
ProjectGUID="{11BDE691-E0D7-443E-A5AF-87B35B8EEAEE}"
RootNamespace="RPL4TOOL"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="Munga_l4.lib libsndfile-1.lib WS2_32.lib dinput8.lib dxguid.lib"
LinkIncremental="2"
AdditionalLibraryDirectories="..\lib"
GenerateDebugInformation="true"
SubSystem="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="Munga_l4.lib libsndfile-1.lib WS2_32.lib dinput8.lib dxguid.lib"
LinkIncremental="1"
AdditionalLibraryDirectories="../lib"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Remote Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\RP\BLOCKER.cpp"
>
</File>
<File
RelativePath="..\RP\BOOSTER.cpp"
>
</File>
<File
RelativePath="..\RP\CHUTE.cpp"
>
</File>
<File
RelativePath="..\RP\CRUSHER.cpp"
>
</File>
<File
RelativePath="..\RP\DEMOPACK.cpp"
>
</File>
<File
RelativePath="..\RP\RIVET.cpp"
>
</File>
<File
RelativePath="..\RP\RPCNSL.cpp"
>
</File>
<File
RelativePath="..\RP\RPDIRECT.cpp"
>
</File>
<File
RelativePath=".\RPL4MODE.cpp"
>
</File>
<File
RelativePath=".\RPL4TOOL.cpp"
>
</File>
<File
RelativePath="..\RP\RPMSSN.cpp"
>
</File>
<File
RelativePath="..\RP\RPPLAYER.cpp"
>
</File>
<File
RelativePath="..\RP\RPREG.cpp"
>
</File>
<File
RelativePath="..\RP\RPTOOL.cpp"
>
</File>
<File
RelativePath="..\RP\RUNNER.cpp"
>
</File>
<File
RelativePath="..\RP\SCORZONE.cpp"
>
</File>
<File
RelativePath="..\RP\THRUSTER.cpp"
>
</File>
<File
RelativePath="..\RP\VTV.cpp"
>
</File>
<File
RelativePath="..\RP\VTVMPPR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVPWR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVSUB.cpp"
>
</File>
<File
RelativePath="..\RP\WEAPSYS.cpp"
>
</File>
<File
RelativePath=".\WTPresets.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\RP\RPTOOL.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+5
View File
@@ -0,0 +1,5 @@
#pragma once
#define MAJOR_DATA_VERSION 3
#define RELEASE_VERSION 0
#define MINOR_DATA_VERSION 2
+1713
View File
File diff suppressed because it is too large Load Diff
+67
View File
@@ -0,0 +1,67 @@
#pragma once
#include "..\munga_l4\l4video.h"
// RB 1/14/07
//#include <dpl\dpl.h>
//#include <dpl\dplutils.h>
//##########################################################################
//##########################################################################
class RPL4VideoRenderer:
public DPLRenderer
{
public:
RPL4VideoRenderer(
HWND hWnd,
unsigned int screenWidth,
unsigned int screenHeight,
bool fullscreen,
InterestType interest_type,
InterestDepth depth_calibration
);
~RPL4VideoRenderer();
char
SetupMaterialSubstitutionList(
Entity* entity,
ViewFrom view_type); // The entity we will be substituting for.
void
TearDownMaterialSubstitutionList();
protected:
int
vtvsExpected,
vtvCount;
void
LoadMissionImplementation(Mission *mission);
void
MakeEntityRenderables(
Entity *this_entity, // The entity we are dealing with
ResourceDescription *model_resource, // Pointer to the video resource
ViewFrom type); // Type of reference (inside/outside...etc.)
HierarchicalDrawComponent*
ReadSKLFile(
Entity *entity, // The entity we are dealing with
ResourceDescription *model_resource, // Pointer to the video resource
ViewFrom type, // type of reference to create
char skeleton_type // TEMPORARY!!!! to handle color substitutions
);
void
RecurseSKLFile(
Entity *entity,
HierarchicalDrawComponent *parent,
NotationFile *mech_skeleton,
const char *page_name,
int recursion_depth,
ViewFrom type, // type of reference to create !!! should be enum
int *joint_counter,
dpl_LOAD_MODE cache_mode
);
};
+579
View File
@@ -0,0 +1,579 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="RP_L4"
ProjectGUID="{01B740F7-5D4E-4E42-893F-CE018E5EE785}"
RootNamespace="RP_L4"
Keyword="Win32Proj"
AssemblyReferenceSearchPaths="&quot;..\MUNGA&quot;;&quot;..\MUNGA_L4&quot;;&quot;..\RP&quot;;&quot;..\RP_L4&quot;"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="&quot;$(DXSDK_DIR)\Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
StructMemberAlignment="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
DisableSpecificWarnings="4996;4244;4267;4305;4018;4138"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib openal32.lib libsndfile-1.lib OpenAL32.lib D3D9.lib D3DX9d.lib"
ShowProgress="0"
OutputFile="$(OutDir)\rpl4opt.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\lib;&quot;$(DXSDK_DIR)Lib\x86&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="&quot;$(DXSDK_DIR)\Include&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="2"
StructMemberAlignment="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib openal32.lib libsndfile-1.lib OpenAL32.lib D3D9.lib D3DX9d.lib"
OutputFile="$(OutDir)\rpl4opt.exe"
LinkIncremental="1"
AdditionalLibraryDirectories="..\lib;&quot;$(DXSDK_DIR)Lib\x86&quot;"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Remote Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="&quot;$(DXSDK_DIR)\Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
StructMemberAlignment="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
DisableSpecificWarnings="4996;4244;4267;4305;4018"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib openal32.lib libsndfile-1.lib OpenAL32.lib D3D9.lib D3DX9d.lib"
ShowProgress="1"
OutputFile="$(OutDir)\rpl4opt.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\lib;&quot;$(DXSDK_DIR)Lib\x86&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<Filter
Name="RP_L4"
>
<File
RelativePath=".\RPL4.CPP"
>
</File>
<File
RelativePath=".\RPL4APP.cpp"
>
</File>
<File
RelativePath=".\RPL4ARND.cpp"
>
</File>
<File
RelativePath=".\RPL4GAUG.cpp"
>
</File>
<File
RelativePath=".\RPL4GRND.cpp"
>
</File>
<File
RelativePath=".\RPL4MODE.cpp"
>
</File>
<File
RelativePath=".\RPL4MPPR.cpp"
>
</File>
<File
RelativePath=".\RPL4MSSN.cpp"
>
</File>
<File
RelativePath=".\RPL4PB.cpp"
>
</File>
<File
RelativePath=".\RPL4TOOL.cpp"
>
</File>
<File
RelativePath=".\RPL4VID.cpp"
>
</File>
<File
RelativePath=".\WTPresets.cpp"
>
</File>
</Filter>
<Filter
Name="RP"
>
<File
RelativePath="..\RP\BLOCKER.cpp"
>
</File>
<File
RelativePath="..\RP\BOOSTER.cpp"
>
</File>
<File
RelativePath="..\RP\CHUTE.cpp"
>
</File>
<File
RelativePath="..\RP\CRUSHER.cpp"
>
</File>
<File
RelativePath="..\RP\DEMOPACK.cpp"
>
</File>
<File
RelativePath="..\RP\RIVET.cpp"
>
</File>
<File
RelativePath="..\RP\RPCNSL.cpp"
>
</File>
<File
RelativePath="..\RP\RPDIRECT.cpp"
>
</File>
<File
RelativePath="..\RP\RPMSSN.cpp"
>
</File>
<File
RelativePath="..\RP\RPPLAYER.cpp"
>
</File>
<File
RelativePath="..\RP\RPREG.cpp"
>
</File>
<File
RelativePath="..\RP\RPTOOL.cpp"
>
</File>
<File
RelativePath="..\RP\RUNNER.cpp"
>
</File>
<File
RelativePath="..\RP\SCORZONE.cpp"
>
</File>
<File
RelativePath="..\RP\THRUSTER.cpp"
>
</File>
<File
RelativePath="..\RP\VTV.cpp"
>
</File>
<File
RelativePath="..\RP\VTVMPPR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVPWR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVSUB.cpp"
>
</File>
<File
RelativePath="..\RP\WEAPSYS.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="RP_L4"
>
<File
RelativePath=".\RPL4.h"
>
</File>
<File
RelativePath=".\RPL4.HPP"
>
</File>
<File
RelativePath=".\RPL4APP.h"
>
</File>
<File
RelativePath=".\RPL4ARND.h"
>
</File>
<File
RelativePath=".\RPL4GAUG.h"
>
</File>
<File
RelativePath=".\RPL4GRND.h"
>
</File>
<File
RelativePath=".\RPL4MODE.h"
>
</File>
<File
RelativePath=".\RPL4MPPR.h"
>
</File>
<File
RelativePath=".\RPL4MSSN.h"
>
</File>
<File
RelativePath=".\RPL4PB.h"
>
</File>
<File
RelativePath=".\RPL4VER.h"
>
</File>
<File
RelativePath=".\RPL4VID.h"
>
</File>
<File
RelativePath=".\WTPresets.h"
>
</File>
</Filter>
<Filter
Name="RP"
>
<File
RelativePath="..\RP\BLOCKER.h"
>
</File>
<File
RelativePath="..\RP\BOOSTER.h"
>
</File>
<File
RelativePath="..\RP\CHUTE.h"
>
</File>
<File
RelativePath="..\RP\CRUSHER.h"
>
</File>
<File
RelativePath="..\RP\DEMOPACK.h"
>
</File>
<File
RelativePath="..\RP\RIVET.h"
>
</File>
<File
RelativePath="..\RP\RP.h"
>
</File>
<File
RelativePath="..\RP\RPCNSL.h"
>
</File>
<File
RelativePath="..\RP\RPDIRECT.h"
>
</File>
<File
RelativePath="..\RP\RPMSSN.h"
>
</File>
<File
RelativePath="..\RP\RPPLAYER.h"
>
</File>
<File
RelativePath="..\RP\RPREG.h"
>
</File>
<File
RelativePath="..\RP\RPTOOL.h"
>
</File>
<File
RelativePath="..\RP\RUNNER.h"
>
</File>
<File
RelativePath="..\RP\SCORZONE.h"
>
</File>
<File
RelativePath="..\RP\THRUSTER.h"
>
</File>
<File
RelativePath="..\RP\VTV.h"
>
</File>
<File
RelativePath="..\RP\VTVMPPR.h"
>
</File>
<File
RelativePath="..\RP\VTVPWR.h"
>
</File>
<File
RelativePath="..\RP\VTVSUB.h"
>
</File>
<File
RelativePath="..\RP\WEAPSYS.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+589
View File
@@ -0,0 +1,589 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="RP_L4"
ProjectGUID="{01B740F7-5D4E-4E42-893F-CE018E5EE785}"
RootNamespace="RP_L4"
Keyword="Win32Proj"
AssemblyReferenceSearchPaths="&quot;..\MUNGA&quot;;&quot;..\MUNGA_L4&quot;;&quot;..\RP&quot;;&quot;..\RP_L4&quot;"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
FavorSizeOrSpeed="0"
AdditionalIncludeDirectories="&quot;C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
StructMemberAlignment="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
DisableSpecificWarnings="4996;4244;4267;4305;4018;4138"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib dinput8.lib dxguid.lib openal32.lib libsndfile-1.lib d3dx9.lib d3d9.lib dbghelp.lib"
ShowProgress="0"
OutputFile="$(OutDir)\rpl4opt.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86&quot;;..\lib"
IgnoreAllDefaultLibraries="false"
GenerateDebugInformation="true"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
EnableFiberSafeOptimizations="true"
WholeProgramOptimization="true"
AdditionalIncludeDirectories="&quot;C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="false"
ExceptionHandling="1"
BasicRuntimeChecks="0"
RuntimeLibrary="0"
StructMemberAlignment="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="0"
DisableSpecificWarnings="4996;4244;4267;4305;4018"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib dinput8.lib dxguid.lib openal32.lib libsndfile-1.lib d3dx9.lib d3d9.lib dbghelp.lib"
ShowProgress="1"
OutputFile="$(OutDir)\rpl4opt.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86&quot;;..\lib"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
LinkTimeCodeGeneration="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Remote Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
FavorSizeOrSpeed="0"
AdditionalIncludeDirectories="&quot;C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
StructMemberAlignment="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
DisableSpecificWarnings="4996;4244;4267;4305;4018"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/FORCE:MULTIPLE"
AdditionalDependencies="WS2_32.lib Munga_l4.lib dinput8.lib dxguid.lib openal32.lib libsndfile-1.lib d3dx9.lib d3d9.lib dbghelp.lib"
ShowProgress="1"
OutputFile="$(OutDir)\rpl4opt.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86&quot;;..\lib"
IgnoreAllDefaultLibraries="false"
GenerateDebugInformation="true"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<Filter
Name="RP_L4"
>
<File
RelativePath=".\RPL4.CPP"
>
</File>
<File
RelativePath=".\RPL4APP.cpp"
>
</File>
<File
RelativePath=".\RPL4ARND.cpp"
>
</File>
<File
RelativePath=".\RPL4GAUG.cpp"
>
</File>
<File
RelativePath=".\RPL4GRND.cpp"
>
</File>
<File
RelativePath=".\RPL4MODE.cpp"
>
</File>
<File
RelativePath=".\RPL4MPPR.cpp"
>
</File>
<File
RelativePath=".\RPL4MSSN.cpp"
>
</File>
<File
RelativePath=".\RPL4PB.cpp"
>
</File>
<File
RelativePath=".\RPL4TOOL.cpp"
>
</File>
<File
RelativePath=".\RPL4VID.cpp"
>
</File>
<File
RelativePath=".\WTPresets.cpp"
>
</File>
</Filter>
<Filter
Name="RP"
>
<File
RelativePath="..\RP\BLOCKER.cpp"
>
</File>
<File
RelativePath="..\RP\BOOSTER.cpp"
>
</File>
<File
RelativePath="..\RP\CHUTE.cpp"
>
</File>
<File
RelativePath="..\RP\CRUSHER.cpp"
>
</File>
<File
RelativePath="..\RP\DEMOPACK.cpp"
>
</File>
<File
RelativePath="..\RP\RIVET.cpp"
>
</File>
<File
RelativePath="..\RP\RPCNSL.cpp"
>
</File>
<File
RelativePath="..\RP\RPDIRECT.cpp"
>
</File>
<File
RelativePath="..\RP\RPMSSN.cpp"
>
</File>
<File
RelativePath="..\RP\RPPLAYER.cpp"
>
</File>
<File
RelativePath="..\RP\RPREG.cpp"
>
</File>
<File
RelativePath="..\RP\RPTOOL.cpp"
>
</File>
<File
RelativePath="..\RP\RUNNER.cpp"
>
</File>
<File
RelativePath="..\RP\SCORZONE.cpp"
>
</File>
<File
RelativePath="..\RP\THRUSTER.cpp"
>
</File>
<File
RelativePath="..\RP\VTV.cpp"
>
</File>
<File
RelativePath="..\RP\VTVMPPR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVPWR.cpp"
>
</File>
<File
RelativePath="..\RP\VTVSUB.cpp"
>
</File>
<File
RelativePath="..\RP\WEAPSYS.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="RP_L4"
>
<File
RelativePath=".\RPL4.h"
>
</File>
<File
RelativePath=".\RPL4.HPP"
>
</File>
<File
RelativePath=".\RPL4APP.h"
>
</File>
<File
RelativePath=".\RPL4ARND.h"
>
</File>
<File
RelativePath=".\RPL4GAUG.h"
>
</File>
<File
RelativePath=".\RPL4GRND.h"
>
</File>
<File
RelativePath=".\RPL4MODE.h"
>
</File>
<File
RelativePath=".\RPL4MPPR.h"
>
</File>
<File
RelativePath=".\RPL4MSSN.h"
>
</File>
<File
RelativePath=".\RPL4PB.h"
>
</File>
<File
RelativePath=".\RPL4VER.h"
>
</File>
<File
RelativePath=".\RPL4VID.h"
>
</File>
<File
RelativePath=".\WTPresets.h"
>
</File>
</Filter>
<Filter
Name="RP"
>
<File
RelativePath="..\RP\BLOCKER.h"
>
</File>
<File
RelativePath="..\RP\BOOSTER.h"
>
</File>
<File
RelativePath="..\RP\CHUTE.h"
>
</File>
<File
RelativePath="..\RP\CRUSHER.h"
>
</File>
<File
RelativePath="..\RP\DEMOPACK.h"
>
</File>
<File
RelativePath="..\RP\RIVET.h"
>
</File>
<File
RelativePath="..\RP\RP.h"
>
</File>
<File
RelativePath="..\RP\RPCNSL.h"
>
</File>
<File
RelativePath="..\RP\RPDIRECT.h"
>
</File>
<File
RelativePath="..\RP\RPMSSN.h"
>
</File>
<File
RelativePath="..\RP\RPPLAYER.h"
>
</File>
<File
RelativePath="..\RP\RPREG.h"
>
</File>
<File
RelativePath="..\RP\RPTOOL.h"
>
</File>
<File
RelativePath="..\RP\RUNNER.h"
>
</File>
<File
RelativePath="..\RP\SCORZONE.h"
>
</File>
<File
RelativePath="..\RP\THRUSTER.h"
>
</File>
<File
RelativePath="..\RP\VTV.h"
>
</File>
<File
RelativePath="..\RP\VTVMPPR.h"
>
</File>
<File
RelativePath="..\RP\VTVPWR.h"
>
</File>
<File
RelativePath="..\RP\VTVSUB.h"
>
</File>
<File
RelativePath="..\RP\WEAPSYS.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+243
View File
@@ -0,0 +1,243 @@
[mission]
adventure=Red Planet
map=burnt
scenario=race
time=day
weather=clear
temperature=0
compression=0
//length=600
[pilots]
pilot=200.0.0.117
[200.0.0.117]
hostType=0
dropzone=one
name=Firestorm
bitmapindex=1
loadzones=1
vehicle=blkspk
; uncomment one color and one badge
//color=Aqua
color=Black
//color=Blue
//color=Green
//color=Pink
//color=Purple
//color=Red
//color=White
//color=Yellow
//badge=None
//badge=Celtic
//badge=Desert
//badge=Flames
//badge=Giraffe
//badge=Hawaii
//badge=Korean
badge=Lightning
//badge=Razzle Dazzle
//badge=Rising Sun
//badge=Tiger Stripe
[ordinals]
bitmap=Ordinal::BitMap::1
bitmap=Ordinal::BitMap::2
bitmap=Ordinal::BitMap::3
bitmap=Ordinal::BitMap::4
[Ordinal::BitMap::1]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=000038000003C000001FF00000000F00
bitmap=0000F8000003C000003FF80000000F00
bitmap=0001F8000003C00000707C0000000F00
bitmap=0001F8000003C00000603C0000000F00
bitmap=00007801FC0FF00000003C3DF807FF00
bitmap=00007803FE0FF00000003C3FFC0FFF00
bitmap=00007803C703C00000003C3E3C1F0F00
bitmap=000078078303C0000000783C1E1E0F00
bitmap=000078078003C0000000783C1E1E0F00
bitmap=00007807C003C0000000F03C1E1E0F00
bitmap=00007807F003C0000001E03C1E1E0F00
bitmap=00007803FC03C0000003C03C1E1E0F00
bitmap=00007801FE03C0000007803C1E1E0F00
bitmap=000078007F03C000000F003C1E1E0F00
bitmap=000078001F03C000001E003C1E1E0F00
bitmap=000078000F03C000003C003C1E1E0F00
bitmap=000078060F03C0000078003C1E1E0F00
bitmap=000078071E03E0000078003C1E1F1F00
bitmap=00007803FE01F000007FFC3C1E0FFF00
bitmap=00007801FC00F000007FFC3C1E07EF00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[Ordinal::BitMap::2]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=001FFF0000003C0000003C03C0780000
bitmap=001FFF0000003C0000007C03C0780000
bitmap=00000E0000003C000000FC03C0780000
bitmap=00003C0000003C000001BC03C0780000
bitmap=0000700F3E1FFC000003BC0FF07BF000
bitmap=0001E00F7E3FFC0000073C0FF07FF800
bitmap=0003800FFE7C3C0000063C03C07C7800
bitmap=0007F80FFE783C00000C3C03C0783C00
bitmap=0007FE0F80783C0000183C03C0783C00
bitmap=00001E0F00783C0000383C03C0783C00
bitmap=00000F0F00783C0000703C03C0783C00
bitmap=00000F0F00783C00007FFF03C0783C00
bitmap=00000F0F00783C00007FFF03C0783C00
bitmap=00000F0F00783C0000003C03C0783C00
bitmap=00000F0F00783C0000003C03C0783C00
bitmap=00000F0F00783C0000003C03C0783C00
bitmap=00180F0F00783C0000003C03C0783C00
bitmap=001C1F0F007C7C0000003C03E0783C00
bitmap=000FFE0F003FFC0000003C01F0783C00
bitmap=0007FC0F001FBC0000003C00F0783C00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[Ordinal::BitMap::3]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000000FC03C0780000
bitmap=001FFF03C07800000003FC03C0780000
bitmap=001E0003C07800000007C003C0780000
bitmap=001E0003C0780000000F0003C0780000
bitmap=001E000FF07BF000000F000FF07BF000
bitmap=001E000FF07FF800001E000FF07FF800
bitmap=001E0003C07C7800001E0003C07C7800
bitmap=001FFC03C0783C00001EFC03C0783C00
bitmap=001FFE03C0783C00001FFE03C0783C00
bitmap=00001F03C0783C00001F1F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00180F03C0783C00001E0F03C0783C00
bitmap=001C1F03E0783C00001F1F03E0783C00
bitmap=000FFE01F0783C00000FFE01F0783C00
bitmap=0007FC00F0783C000007FC00F0783C00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[Ordinal::BitMap::4]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000007FC03C0780000
bitmap=001FFF03C0780000000FFE03C0780000
bitmap=00000F03C0780000001F1F03C0780000
bitmap=00000F03C0780000001E0F03C0780000
bitmap=00000F0FF07BF000001E0F0FF07BF000
bitmap=00001F0FF07FF800001E0F0FF07FF800
bitmap=00001E03C07C7800001E0F03C07C7800
bitmap=00003E03C0783C00001E0F03C0783C00
bitmap=00003C03C0783C00000F1E03C0783C00
bitmap=00003C03C0783C000007FC03C0783C00
bitmap=00007803C0783C000007FC03C0783C00
bitmap=00007803C0783C00000F1E03C0783C00
bitmap=00007803C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003E0783C00000F1E03E0783C00
bitmap=0000F001F0783C00000FFE01F0783C00
bitmap=0000F000F0783C000007FC00F0783C00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[largebitmap]
bitmap=BitMap::Large::Slag
[BitMap::Large::Slag]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=0000000001FC0F000000000000000000
bitmap=0000000003FE0F000000000000000000
bitmap=0000000007C70F000000000000000000
bitmap=0000000007830F000000000000000000
bitmap=0000000007800F01FF00FFE000000000
bitmap=0000000007800F03FF81FFE000000000
bitmap=0000000007C00F0707C3E1E000000000
bitmap=0000000007E00F0603C3C1E000000000
bitmap=0000000003F00F0003C3C1E000000000
bitmap=0000000001F80F0003C3C1E000000000
bitmap=0000000000FC0F0003C3C1E000000000
bitmap=00000000007E0F01FFC3C1E000000000
bitmap=00000000003F0F03FFC3C1E000000000
bitmap=00000000001F0F07C3C3C1E000000000
bitmap=00000000000F0F0783C3C1E000000000
bitmap=00000000000F0F0783C3C1E000000000
bitmap=00000000060F0F0783C3C1E000000000
bitmap=00000000071F0F03C7C3E3E000000000
bitmap=0000000003FE0F03FFC1FFE000000000
bitmap=0000000001FC0F00FBC0FDE000000000
bitmap=0000000000000000000001E000000000
bitmap=0000000000000000000001E000000000
bitmap=0000000000000000000301E000000000
bitmap=0000000000000000000383E000000000
bitmap=00000000000000000001FFC000000000
bitmap=00000000000000000000FF8000000000
x=128
y=32
width=8
[smallbitmap]
bitmap=BitMap::Small::Slag
[BitMap::Small::Slag]
bitmap=00000000000000000000000000000000
bitmap=000000000000000000001E3000000000
bitmap=000031300000000000003031F0FC0000
bitmap=00003832198C000000001C30198C0000
bitmap=00000E31F98C000000000733198C0000
bitmap=00000333198C000000002333198C0000
bitmap=00001E31F8FC000000000000000C0000
bitmap=00000000010C00000000000000F80000
x=64
y=16
width=4
+2812
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
void setupPresets();
+224
View File
@@ -0,0 +1,224 @@
[mission]
adventure=Red Planet
map=wise
scenario=race
time=day
weather=clear
temperature=0
compression=0
length=600
[pilots]
pilot=127.0.0.1
[127.0.0.1]
hostType=0
dropzone=one
name=Test
bitmapindex=1
loadzones=1
vehicle=puck
color=Aqua
badge=Celtic
[ordinals]
bitmap=Ordinal::BitMap::1
bitmap=Ordinal::BitMap::2
bitmap=Ordinal::BitMap::3
bitmap=Ordinal::BitMap::4
[Ordinal::BitMap::1]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=000038000003C000001FF00000000F00
bitmap=0000F8000003C000003FF80000000F00
bitmap=0001F8000003C00000707C0000000F00
bitmap=0001F8000003C00000603C0000000F00
bitmap=00007801FC0FF00000003C3DF807FF00
bitmap=00007803FE0FF00000003C3FFC0FFF00
bitmap=00007803C703C00000003C3E3C1F0F00
bitmap=000078078303C0000000783C1E1E0F00
bitmap=000078078003C0000000783C1E1E0F00
bitmap=00007807C003C0000000F03C1E1E0F00
bitmap=00007807F003C0000001E03C1E1E0F00
bitmap=00007803FC03C0000003C03C1E1E0F00
bitmap=00007801FE03C0000007803C1E1E0F00
bitmap=000078007F03C000000F003C1E1E0F00
bitmap=000078001F03C000001E003C1E1E0F00
bitmap=000078000F03C000003C003C1E1E0F00
bitmap=000078060F03C0000078003C1E1E0F00
bitmap=000078071E03E0000078003C1E1F1F00
bitmap=00007803FE01F000007FFC3C1E0FFF00
bitmap=00007801FC00F000007FFC3C1E07EF00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[Ordinal::BitMap::2]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=001FFF0000003C0000003C03C0780000
bitmap=001FFF0000003C0000007C03C0780000
bitmap=00000E0000003C000000FC03C0780000
bitmap=00003C0000003C000001BC03C0780000
bitmap=0000700F3E1FFC000003BC0FF07BF000
bitmap=0001E00F7E3FFC0000073C0FF07FF800
bitmap=0003800FFE7C3C0000063C03C07C7800
bitmap=0007F80FFE783C00000C3C03C0783C00
bitmap=0007FE0F80783C0000183C03C0783C00
bitmap=00001E0F00783C0000383C03C0783C00
bitmap=00000F0F00783C0000703C03C0783C00
bitmap=00000F0F00783C00007FFF03C0783C00
bitmap=00000F0F00783C00007FFF03C0783C00
bitmap=00000F0F00783C0000003C03C0783C00
bitmap=00000F0F00783C0000003C03C0783C00
bitmap=00000F0F00783C0000003C03C0783C00
bitmap=00180F0F00783C0000003C03C0783C00
bitmap=001C1F0F007C7C0000003C03E0783C00
bitmap=000FFE0F003FFC0000003C01F0783C00
bitmap=0007FC0F001FBC0000003C00F0783C00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[Ordinal::BitMap::3]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000000FC03C0780000
bitmap=001FFF03C07800000003FC03C0780000
bitmap=001E0003C07800000007C003C0780000
bitmap=001E0003C0780000000F0003C0780000
bitmap=001E000FF07BF000000F000FF07BF000
bitmap=001E000FF07FF800001E000FF07FF800
bitmap=001E0003C07C7800001E0003C07C7800
bitmap=001FFC03C0783C00001EFC03C0783C00
bitmap=001FFE03C0783C00001FFE03C0783C00
bitmap=00001F03C0783C00001F1F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00000F03C0783C00001E0F03C0783C00
bitmap=00180F03C0783C00001E0F03C0783C00
bitmap=001C1F03E0783C00001F1F03E0783C00
bitmap=000FFE01F0783C00000FFE01F0783C00
bitmap=0007FC00F0783C000007FC00F0783C00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[Ordinal::BitMap::4]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000007FC03C0780000
bitmap=001FFF03C0780000000FFE03C0780000
bitmap=00000F03C0780000001F1F03C0780000
bitmap=00000F03C0780000001E0F03C0780000
bitmap=00000F0FF07BF000001E0F0FF07BF000
bitmap=00001F0FF07FF800001E0F0FF07FF800
bitmap=00001E03C07C7800001E0F03C07C7800
bitmap=00003E03C0783C00001E0F03C0783C00
bitmap=00003C03C0783C00000F1E03C0783C00
bitmap=00003C03C0783C000007FC03C0783C00
bitmap=00007803C0783C000007FC03C0783C00
bitmap=00007803C0783C00000F1E03C0783C00
bitmap=00007803C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003C0783C00001E0F03C0783C00
bitmap=0000F003E0783C00000F1E03E0783C00
bitmap=0000F001F0783C00000FFE01F0783C00
bitmap=0000F000F0783C000007FC00F0783C00
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[largebitmap]
bitmap=BitMap::Large::Test
[BitMap::Large::Test]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=000000000001FF000000000000000000
bitmap=000000000001FF00000E000000000000
bitmap=000000000001FF00000E000000000000
bitmap=0000000000003800000E000000000000
bitmap=000000000000381F0FBF800000000000
bitmap=000000000000383F9FBF800000000000
bitmap=000000000000387F9FBF800000000000
bitmap=000000000000387B9C0E000000000000
bitmap=00000000000038770F0E000000000000
bitmap=000000000000387E078E000000000000
bitmap=000000000000383F9F8E000000000000
bitmap=000000000000381F1F0E000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=128
y=32
width=8
[smallbitmap]
bitmap=BitMap::Small::Test
[BitMap::Small::Test]
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
bitmap=000007F0008000000000008000800000
bitmap=000000871DC0000000000088A0800000
bitmap=00000089108000000000008E08800000
bitmap=00000088848000000000008738800000
bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000
x=64
y=16
width=4