Archival snapshot of the Virtual World Entertainment Tesla cockpit software, 1994-1996: MUNGA engine and L4 pod layer source (Borland C++ 5.0), BT/RP game code, and game content (models, audio, maps, gauges, Division renderer data). Includes third-party libraries: Division dVS/DPL graphics, HMI SOS audio, WATTCP networking. Files are preserved byte-for-byte (.gitattributes disables all line-ending conversion). README.md documents the layout, target hardware, and toolchain. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
164 lines
5.4 KiB
C++
164 lines
5.4 KiB
C++
//===========================================================================//
|
|
// File: entity2.hh //
|
|
// Project: MUNGA Brick: Entity Manager //
|
|
// Contents: Interface specification for entity class //
|
|
//---------------------------------------------------------------------------//
|
|
// Date Who Modification //
|
|
// -------- --- ---------------------------------------------------------- //
|
|
// 11/29/94 JMA Initial coding. //
|
|
//---------------------------------------------------------------------------//
|
|
// Copyright (C) 1994, Virtual World Entertainment, Inc. //
|
|
// All Rights reserved worldwide //
|
|
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
|
|
//===========================================================================//
|
|
|
|
#if defined(ENTITY_CONTINUATION)
|
|
|
|
# if !defined(ENTITYID_HPP)
|
|
# include <entityid.hpp>
|
|
# endif
|
|
|
|
class Entity;
|
|
class Entity__SharedData;
|
|
class Entity__MakeMessage;
|
|
class Entity__TakeDamageMessage;
|
|
class Entity__PlayerLinkMessage;
|
|
class Entity__DynamicMessage;
|
|
class Entity__UpdateMessage;
|
|
class Entity__MakeMapMessage;
|
|
class Entity__TakeDamageStreamMessage;
|
|
class Entity__DestroyEntityMessage;
|
|
|
|
class EntityID;
|
|
|
|
//
|
|
//---------------------------------------------------
|
|
// Support types for entity identity and host manager
|
|
//---------------------------------------------------
|
|
//
|
|
|
|
//##########################################################################
|
|
//####################### Entity::Message ############################
|
|
//##########################################################################
|
|
|
|
class Entity__Message:
|
|
public Receiver::Message
|
|
{
|
|
public:
|
|
//
|
|
// The following fields need to be filled in by the sending manager
|
|
//
|
|
enum {
|
|
DontSpoolBit = Receiver::Message::NextBit,
|
|
NextBit
|
|
};
|
|
|
|
enum {
|
|
DontSpoolFlag = 1 << DontSpoolBit
|
|
};
|
|
|
|
|
|
// This field will be already set for map entities
|
|
EntityID
|
|
entityID;
|
|
|
|
InterestZoneID
|
|
interestZoneID;
|
|
HostID
|
|
ownerID;
|
|
|
|
Entity__Message(
|
|
Receiver::MessageID messageID,
|
|
size_t length
|
|
):
|
|
Receiver::Message(messageID, length),
|
|
entityID(EntityID::Null),
|
|
interestZoneID(NullInterestZoneID),
|
|
ownerID(NullHostID)
|
|
{}
|
|
|
|
// This constructor exists for constructing map entities
|
|
Entity__Message(
|
|
Receiver::MessageID messageID,
|
|
size_t length,
|
|
const EntityID &entity_ID
|
|
):
|
|
Receiver::Message(messageID, length),
|
|
entityID(entity_ID),
|
|
interestZoneID(NullInterestZoneID),
|
|
ownerID(NullHostID)
|
|
{}
|
|
};
|
|
|
|
//
|
|
// Various typedefs for unimplemented messages
|
|
//
|
|
typedef Entity__Message Entity__MakeReadyMessage;
|
|
typedef Entity__Message Entity__RemakeEntityMessage;
|
|
typedef Entity__Message Entity__RemakeReadyMessage;
|
|
typedef Entity__Message Entity__RemakeCompleteMessage;
|
|
typedef Entity__Message Entity__RemakeIncompleteMessage;
|
|
typedef Entity__Message Entity__TransferEntityMessage;
|
|
typedef Entity__Message Entity__TransferCompleteMessage;
|
|
typedef Entity__Message Entity__TransferIncompleteMessage;
|
|
typedef Entity__Message Entity__BecomeInterestingMessage;
|
|
typedef Entity__Message Entity__BecomeUninterestingMessage;
|
|
typedef Entity__Message Entity__SubscribeReplicantMessage;
|
|
typedef Entity__Message Entity__UnsubscribeReplicantMessage;
|
|
|
|
//##########################################################################
|
|
//############# Entity::StaticVideoSocketIterator ####################
|
|
//##########################################################################
|
|
|
|
class Entity__StaticVideoSocketIterator:
|
|
public SChainIteratorOf<Component*>
|
|
{
|
|
public:
|
|
Entity__StaticVideoSocketIterator(Entity *entity);
|
|
Entity__StaticVideoSocketIterator(
|
|
const Entity__StaticVideoSocketIterator &iterator
|
|
);
|
|
~Entity__StaticVideoSocketIterator();
|
|
};
|
|
|
|
//##########################################################################
|
|
//############ Entity::DynamicVideoSocketIterator ####################
|
|
//##########################################################################
|
|
|
|
class Entity__DynamicVideoSocketIterator:
|
|
public SChainIteratorOf<Component*>
|
|
{
|
|
public:
|
|
Entity__DynamicVideoSocketIterator(Entity *entity);
|
|
Entity__DynamicVideoSocketIterator(
|
|
const Entity__DynamicVideoSocketIterator &iterator
|
|
);
|
|
~Entity__DynamicVideoSocketIterator();
|
|
};
|
|
|
|
//##########################################################################
|
|
//################ Entity::AudioSocketIterator #######################
|
|
//##########################################################################
|
|
|
|
class Entity__AudioSocketIterator:
|
|
public SChainIteratorOf<Component*>
|
|
{
|
|
public:
|
|
Entity__AudioSocketIterator(Entity *entity);
|
|
~Entity__AudioSocketIterator();
|
|
};
|
|
|
|
//##########################################################################
|
|
//#################### Entity::UpdateRecord ##########################
|
|
//##########################################################################
|
|
|
|
struct Entity__UpdateRecord:
|
|
public Simulation__UpdateRecord
|
|
{
|
|
public:
|
|
Origin localOrigin;
|
|
};
|
|
|
|
#endif
|
|
|