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:
@@ -0,0 +1,89 @@
|
||||
#include "munga.h"
|
||||
#pragma hdrstop
|
||||
|
||||
#include "link.h"
|
||||
#include "plug.h"
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
//
|
||||
//#############################################################################
|
||||
// Link
|
||||
//#############################################################################
|
||||
//
|
||||
Link::Link(Socket *socket, Plug *plug)
|
||||
{
|
||||
this->socket = socket;
|
||||
this->plug = plug;
|
||||
|
||||
// Add this new link to the plugs current set of links
|
||||
AddToPlug(plug);
|
||||
}
|
||||
|
||||
//
|
||||
//#############################################################################
|
||||
// ~Link
|
||||
//#############################################################################
|
||||
//
|
||||
Link::~Link()
|
||||
{
|
||||
// Remove this link from the plugs current set of links
|
||||
ReleaseFromPlug();
|
||||
}
|
||||
|
||||
//
|
||||
//#############################################################################
|
||||
// TestInstance
|
||||
//#############################################################################
|
||||
//
|
||||
Logical Link::TestInstance() const
|
||||
{
|
||||
Check_Signature(socket);
|
||||
Check_Signature(plug);
|
||||
return True;
|
||||
}
|
||||
|
||||
//
|
||||
//#############################################################################
|
||||
// ReleaseFromPlug
|
||||
//#############################################################################
|
||||
//
|
||||
void Link::ReleaseFromPlug()
|
||||
{
|
||||
//
|
||||
//-----------------------------------------------------
|
||||
// Remove this link from the plugs current set of links
|
||||
//-----------------------------------------------------
|
||||
//
|
||||
Check(plug);
|
||||
if (plug->linkHead == this)
|
||||
plug->linkHead = nextLink;
|
||||
if (prevLink != NULL)
|
||||
{
|
||||
Check(prevLink);
|
||||
prevLink->nextLink = nextLink;
|
||||
}
|
||||
if (nextLink != NULL)
|
||||
{
|
||||
Check(nextLink);
|
||||
nextLink->prevLink = prevLink;
|
||||
}
|
||||
prevLink = nextLink = NULL;
|
||||
}
|
||||
|
||||
//
|
||||
//#############################################################################
|
||||
// AddToPlug
|
||||
//#############################################################################
|
||||
//
|
||||
void Link::AddToPlug(Plug *plug)
|
||||
{
|
||||
Check(plug);
|
||||
if ((nextLink = plug->linkHead) != NULL)
|
||||
{
|
||||
Check(nextLink);
|
||||
nextLink->prevLink = this;
|
||||
}
|
||||
this->prevLink = NULL;
|
||||
plug->linkHead = this;
|
||||
}
|
||||
Reference in New Issue
Block a user