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.
228 lines
5.8 KiB
C++
228 lines
5.8 KiB
C++
//===========================================================================//
|
|
// File: bridge.hpp
|
|
//---------------------------------------------------------------------------//
|
|
// Date Who Modification //
|
|
// -------- --- ---------------------------------------------------------- //
|
|
// 01/12/2000 AHF Inital base class
|
|
//===========================================================================//
|
|
|
|
#pragma once
|
|
|
|
#include "MW4.hpp"
|
|
#include "building.hpp"
|
|
|
|
namespace MechWarrior4
|
|
{
|
|
|
|
class LancematePlug:
|
|
public Stuff::Plug
|
|
{
|
|
friend class AI;
|
|
public:
|
|
LancematePlug(Stuff::MemoryStream *stream);
|
|
~LancematePlug();
|
|
|
|
static void
|
|
ConstructStream(MemoryStream *stream,Stuff::Page *page);
|
|
void
|
|
WriteToText(Stuff::NotationFile& file);
|
|
void
|
|
Save(MemoryStream *stream);
|
|
|
|
Stuff::MString
|
|
m_lancemateName;
|
|
Adept::ResourceID
|
|
m_lanceDataListID;
|
|
Stuff::MString
|
|
m_TalkerSuffix;
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Personality Support
|
|
//
|
|
public:
|
|
enum LANCEMATE_STATE
|
|
{
|
|
OK,
|
|
INJURED,
|
|
MIA,
|
|
KIA
|
|
};
|
|
|
|
bool
|
|
Joined (void) const
|
|
{Check_Object(this); return m_Joined;}
|
|
void
|
|
Joined (bool value)
|
|
{ Check_Object (this); m_Joined = value; }
|
|
LANCEMATE_STATE
|
|
State (void) const
|
|
{Check_Object(this); return m_CurrentState;}
|
|
bool
|
|
MustSurvive() const
|
|
{Check_Object(this); return (m_MustSurvive);}
|
|
int
|
|
GetLanceIDBasedOnSuffix();
|
|
void
|
|
State(LANCEMATE_STATE new_state)
|
|
{Check_Object(this); m_CurrentState = new_state;}
|
|
|
|
protected:
|
|
bool
|
|
m_MustSurvive;
|
|
LANCEMATE_STATE
|
|
m_CurrentState;
|
|
bool
|
|
m_Joined; // whether the lancemate has been found by the player
|
|
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Skill Support
|
|
//
|
|
|
|
protected:
|
|
int m_GunnerySkill;
|
|
int m_PilotSkill;
|
|
int m_EliteSkill;
|
|
int m_MinHeatSkill;
|
|
int m_MaxHeatSkill;
|
|
int m_SensorSkill;
|
|
int m_BlindFightingSkill;
|
|
int m_LongRangeGunnerySkill;
|
|
int m_ShortRangeGunnerySkill;
|
|
|
|
int m_TowardsPilotSkill;
|
|
int m_TowardsGunnerySkill;
|
|
int m_TowardsEliteSkill;
|
|
int m_StartGunnerySkill;
|
|
int m_StartPilotSkill;
|
|
int m_StartEliteSkill;
|
|
|
|
public:
|
|
void CopyToAI (AI *target);
|
|
void CopyFromAI (AI *src);
|
|
|
|
int GetStartGunnerySkill (void) const
|
|
{ return m_StartGunnerySkill; }
|
|
int GetStartPilotSkill (void) const
|
|
{ return m_StartPilotSkill; }
|
|
|
|
int RootGunnerySkill (void) const
|
|
{ return m_GunnerySkill; }
|
|
int RootPilotSkill (void) const
|
|
{ return m_PilotSkill; }
|
|
int RootSensorSkill (void) const
|
|
{ return m_SensorSkill; }
|
|
int RootBlindFightingSkill (void) const
|
|
{ return m_BlindFightingSkill; }
|
|
int RootLongRangeGunnerySkill (void) const
|
|
{ return m_LongRangeGunnerySkill; }
|
|
int RootShortRangeGunnerySkill (void) const
|
|
{ return m_ShortRangeGunnerySkill; }
|
|
int RootEliteSkill (void) const
|
|
{ return m_EliteSkill; }
|
|
int RootMinHeatSkill (void) const
|
|
{ return m_MinHeatSkill; }
|
|
int RootMaxHeatSkill (void) const
|
|
{ return m_MaxHeatSkill; }
|
|
|
|
int GunnerySkill (void) const;
|
|
int PilotSkill (void) const;
|
|
int SensorSkill (void) const;
|
|
int BlindFightingSkill (void) const;
|
|
int LongRangeGunnerySkill (void) const;
|
|
int ShortRangeGunnerySkill (void) const;
|
|
int EliteSkill (void) const;
|
|
int MinHeatSkill (void) const;
|
|
int MaxHeatSkill (void) const;
|
|
void GunnerySkill (int newvalue)
|
|
{
|
|
m_GunnerySkill = newvalue;
|
|
m_StartGunnerySkill = newvalue;
|
|
}
|
|
|
|
void PilotSkill (int newvalue)
|
|
{
|
|
m_PilotSkill = newvalue;
|
|
m_StartPilotSkill = newvalue;
|
|
}
|
|
|
|
void SensorSkill (int newvalue)
|
|
{ m_SensorSkill = newvalue; }
|
|
|
|
void BlindFightingSkill (int newvalue)
|
|
{ m_BlindFightingSkill = newvalue; }
|
|
|
|
void LongRangeGunnerySkill (int newvalue)
|
|
{ m_LongRangeGunnerySkill = newvalue; }
|
|
|
|
void ShortRangeGunnerySkill (int newvalue)
|
|
{ m_ShortRangeGunnerySkill = newvalue; }
|
|
|
|
void EliteSkill (int newvalue)
|
|
{
|
|
m_EliteSkill = newvalue;
|
|
m_StartEliteSkill = newvalue;
|
|
}
|
|
|
|
void MinHeatSkill (int newvalue)
|
|
{ m_MinHeatSkill = newvalue; }
|
|
|
|
void MaxHeatSkill (int newvalue)
|
|
{ m_MaxHeatSkill = newvalue; }
|
|
|
|
bool ShouldEjectSafely();
|
|
};
|
|
|
|
typedef Receiver__ClassData LancemateManager__ClassData;
|
|
typedef Receiver__Message LancemateManager__Message;
|
|
|
|
class LancemateManager : public Receiver
|
|
{
|
|
public:
|
|
static void InitializeClass();
|
|
static void TerminateClass();
|
|
|
|
//##########################################################################
|
|
// Inheritance support
|
|
//
|
|
public:
|
|
typedef LancemateManager__ClassData ClassData;
|
|
typedef LancemateManager__Message Message;
|
|
|
|
|
|
static void ConstructLancemateStream(Stuff::MemoryStream *stream,NotationFile *notation_file);
|
|
|
|
static LancemateManager* MakeNewLancemateManager(const char *lancematemanager_name);
|
|
static LancemateManager* MakeNewLancemateManager(Adept::ResourceID lancemate_id);
|
|
|
|
void Save(MemoryStream *stream);
|
|
void WriteToText(const char *file_name);
|
|
|
|
LancemateManager(Stuff::MemoryStream *stream);
|
|
|
|
~LancemateManager();
|
|
|
|
Stuff::ChainOf<LancematePlug*> m_lancemates;
|
|
|
|
static LancemateManager *Instance;
|
|
|
|
LancematePlug
|
|
*FindLancemate(MString lance_name,bool case_sensitive = true);
|
|
|
|
void RevealLancemate (char *name);
|
|
void HideLancemate (char *name);
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Shared Data support
|
|
//
|
|
public:
|
|
static ClassData *DefaultData;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Test Support
|
|
//
|
|
public:
|
|
void TestInstance() const;
|
|
};
|
|
}
|
|
|