Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
223 lines
6.1 KiB
C++
223 lines
6.1 KiB
C++
//===========================================================================//
|
|
// File: Interface.hpp //
|
|
// Project: MUNGA Brick: Interest Manager //
|
|
// Contents: Interface specifications for interest manager //
|
|
//---------------------------------------------------------------------------//
|
|
// Date Who Modification //
|
|
// -------- --- -----------------------------------------------------------//
|
|
// 08/25/97 JMA Infrastructure changes. //
|
|
// 08/25/97 ECH Infrastructure changes. //
|
|
//---------------------------------------------------------------------------//
|
|
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
|
|
// All Rights reserved worldwide //
|
|
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
|
|
//===========================================================================//
|
|
|
|
#pragma once
|
|
|
|
#include "Adept.hpp"
|
|
#include "EntityClassData.hpp"
|
|
#include "Entity.hpp"
|
|
#include "application.hpp"
|
|
#include "control_mapping.hpp"
|
|
|
|
namespace Adept {
|
|
|
|
class Entity__CreateMessage;
|
|
|
|
//##########################################################################
|
|
//#################### Interface__GameModel ##########################
|
|
//##########################################################################
|
|
|
|
class Interface__GameModel:
|
|
public Entity__GameModel
|
|
{
|
|
public:
|
|
ResourceID mappingStreamResourceID;
|
|
|
|
static void
|
|
ConstructGameModel(Script *script);
|
|
};
|
|
|
|
typedef Entity__CreateMessage Interface__CreateMessage;
|
|
typedef Entity__ExecutionStateEngine Interface__ExecutionStateEngine;
|
|
|
|
//##########################################################################
|
|
//########################## Interface ###############################
|
|
//##########################################################################
|
|
|
|
class Interface :
|
|
public Entity
|
|
{
|
|
public:
|
|
static void
|
|
InitializeClass();
|
|
static void
|
|
TerminateClass();
|
|
|
|
typedef Entity BaseClass;
|
|
|
|
static ClassData
|
|
*DefaultData;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Inheritance support
|
|
//
|
|
public:
|
|
typedef Interface__GameModel GameModel;
|
|
typedef Interface__CreateMessage CreateMessage;
|
|
typedef Interface__ExecutionStateEngine ExecutionStateEngine;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Run-time Construction and Destruction Support
|
|
//
|
|
public:
|
|
static Interface*
|
|
Make(
|
|
const CreateMessage *message,
|
|
ReplicatorID *base_id
|
|
);
|
|
|
|
~Interface();
|
|
|
|
protected:
|
|
|
|
Interface(
|
|
ClassData *class_data,
|
|
const CreateMessage *message,
|
|
ReplicatorID *base_id,
|
|
ElementRenderer::Element *element
|
|
);
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Control Support
|
|
//
|
|
protected:
|
|
bool m_ChatMode;
|
|
bool m_TeamChat;
|
|
int m_InChatMessage;
|
|
int m_ChatLen;
|
|
bool m_InsertMode;
|
|
bool m_ForceFeedBack;
|
|
Scalar m_MouseSensitivity;
|
|
bool m_MouseAllowed;
|
|
int m_JoystickXAxisType;
|
|
int m_JoystickRudderAxisType;
|
|
int m_MouseXAxisType;
|
|
Scalar m_joystick_throttle_center;
|
|
Scalar m_joystick_throttle_dead_low;
|
|
Scalar m_joystick_throttle_dead_high;
|
|
|
|
public:
|
|
|
|
char m_CurrentChatMessage[MaxChatSize];
|
|
void ClearMappings (void);
|
|
virtual void LoadControlStream (const ResourceID& control_stream);
|
|
virtual void EnterChatMode (bool team);
|
|
virtual void LeaveChatMode (void);
|
|
virtual void pushChatKey (DWORD key);
|
|
virtual void ForceFeedBack (bool value)
|
|
{ m_ForceFeedBack = value; }
|
|
virtual void MouseSensitivity (Scalar value)
|
|
{ m_MouseSensitivity = value/25.0f; } // was 0-1 and we want 0.5 to be equal to 0.02f
|
|
virtual void MouseAllowed (bool value)
|
|
{ m_MouseAllowed = value; }
|
|
|
|
virtual void JoystickXAxisType (int value)
|
|
{ m_JoystickXAxisType = value; }
|
|
virtual void JoystickRudderAxisType (int value)
|
|
{ m_JoystickRudderAxisType = value; }
|
|
virtual void MouseXAxisType (int value)
|
|
{ m_MouseXAxisType = value; }
|
|
|
|
virtual void JoyStickThrottleCenter(Scalar s)
|
|
{ m_joystick_throttle_center = s; }
|
|
virtual void JoyStickThrottleLow(Scalar s)
|
|
{ m_joystick_throttle_dead_low = s; }
|
|
virtual void JoyStickThrottleHigh(Scalar s)
|
|
{ m_joystick_throttle_dead_high = s; }
|
|
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Targeting Support
|
|
//
|
|
public:
|
|
Stuff::Line3D
|
|
targetLine;
|
|
Stuff::Scalar
|
|
targetDistance;
|
|
Entity__CollisionQuery
|
|
targetQuery;
|
|
Stuff::SlotOf<Entity*>
|
|
reticuleEntity;
|
|
Stuff::Point3D
|
|
reticuleOffset;
|
|
Stuff::Normal3D
|
|
reticuleNormal;
|
|
|
|
virtual bool
|
|
ClipCameraLine(Stuff::Line3D *line)
|
|
{Check_Object(this); return true;}
|
|
|
|
virtual Entity*
|
|
CastCollisionLine();
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Model Support
|
|
//
|
|
public:
|
|
const GameModel*
|
|
GetGameModel()
|
|
{
|
|
Check_Object(this);
|
|
return Cast_Pointer(const GameModel*, gameModelResource.GetPointer());
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Test Support
|
|
//
|
|
public:
|
|
void
|
|
TestInstance();
|
|
};
|
|
|
|
#if 0
|
|
//#########################################################################
|
|
//##################### ControlsMappingRequest ######################
|
|
//#########################################################################
|
|
|
|
class ControlsMappingRequest
|
|
{
|
|
public:
|
|
size_t
|
|
recordSize;
|
|
|
|
enum {
|
|
DirectMapping=0,
|
|
EventMapping=1
|
|
};
|
|
|
|
int
|
|
controlsGroup,
|
|
controlsElement,
|
|
mappingType,
|
|
subsystemID,
|
|
controlMask;
|
|
|
|
bool invert;
|
|
|
|
union
|
|
{
|
|
Entity::AttributeID attributeID;
|
|
Receiver::MessageID messageID;
|
|
};
|
|
|
|
void
|
|
TestInstance() const
|
|
{}
|
|
};
|
|
#endif
|
|
|
|
}
|
|
|