Files
RP412/MUNGA/NTTMGR.h
T
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

107 lines
2.4 KiB
C++

#pragma once
#include "namelist.h"
#include "node.h"
#include "chain.h"
#include "network.h"
class Entity;
//##########################################################################
//######################### EntityGroup ##############################
//##########################################################################
class EntityGroup : public Node
{
friend class EntityManager;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction and Destruction
//
protected:
EntityGroup();
~EntityGroup();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Naming functions
//
public:
const char* GetGroupName()
{
Check(this);
return groupName;
}
protected:
const char *groupName;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Grouping functions
//
public:
void Add(Entity *entity)
{
Check(this);
groupMembers.Add(Cast_Object(Node*,entity));
}
void Add(EntityGroup *group)
{
Check(this);
Check(group);
groupMembers.Add(group);
}
ChainOf<Node*> groupMembers;
};
//##########################################################################
//######################## EntityManager #############################
//##########################################################################
class EntityManager : public NetworkClient
{
friend class Entity;
//##########################################################################
// Shared Data support
//
protected:
static Derivation *GetClassDerivations();
static SharedData DefaultData;
//##########################################################################
// Construction and destruction support
//
public:
EntityManager();
~EntityManager();
void FryDeathRow();
protected:
EntityGroup *deathRow;
//##########################################################################
// Message packet receiving
//
public:
void ReceiveNetworkPacket(NetworkPacket *packet, Receiver::Message *packet_message);
//##########################################################################
// Entity grouping
//
public:
EntityGroup* UseGroup(const char *name);
EntityGroup* FindGroup(const char *name)
{
Check_Pointer(name);
return (EntityGroup*)groupList.FindObject(name);
}
void RemoveGroup(EntityGroup* group);
Logical TestInstance() const;
protected:
ObjectNameList groupList;
};