Files
CydandClaude Opus 4.8 4abbf8879f 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>
2026-06-30 07:59:51 -05:00

122 lines
2.5 KiB
C++

#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);
};