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.
2036 lines
46 KiB
C++
2036 lines
46 KiB
C++
#include "MW4Headers.hpp"
|
|
|
|
//»óÈÆ ¾Õ
|
|
#include "MWVideoRenderer.hpp"
|
|
//»óÈÆ µÚ
|
|
#include "MWGUIManager.hpp"
|
|
#include "GUIWeaponManager.hpp"
|
|
#include "GUIRadarManager.hpp"
|
|
#include "GUILightAmp.hpp"
|
|
#include "GUIStaticView.hpp"
|
|
#include "Mech.hpp"
|
|
#include "Torso.hpp"
|
|
#include "HeatManager.hpp"
|
|
#include "Objective.hpp"
|
|
#include "MWApplication.hpp"
|
|
#include "ShellScriptHeaders.hpp"
|
|
#include "HUDScriptHeaders.hpp"
|
|
#include "VehicleInterface.hpp"
|
|
#include "jumpjet.hpp"
|
|
#include "flag.hpp"
|
|
#include "bucket.hpp"
|
|
#include "MWMission.hpp"
|
|
|
|
#include "hudcomp.hpp"
|
|
#include "hudcomp2.hpp"
|
|
#include "huddamage.hpp"
|
|
#include "hudweapon.hpp"
|
|
#include "hudtarg.hpp"
|
|
#include "hudchat.hpp"
|
|
#include "hudcomm.hpp"
|
|
#include "hudhelp.hpp"
|
|
#include "hudmap.hpp"
|
|
#include "hudobj.hpp"
|
|
#include "hudscore.hpp"
|
|
#include "hudtimer.hpp"
|
|
#include "huddebug.hpp"
|
|
#include "hudhelparrow.hpp"
|
|
#include "hudcamera.hpp"
|
|
#include "aiutils.hpp"
|
|
|
|
#include <Adept\NameTable.hpp>
|
|
#include <Adept\Application.hpp>
|
|
#include <Adept\GUIObject.hpp>
|
|
#include <Adept\CameraComponent.hpp>
|
|
|
|
#include <ElementRenderer\CameraElement.hpp>
|
|
|
|
#include <MLR\MLRClipper.hpp>
|
|
|
|
// jcem - begin
|
|
#include "ctcl.h"
|
|
extern bool g_bCOOP; // COin OPeration
|
|
// jcem - end
|
|
|
|
//#######################################################################
|
|
//########################### MWGUIManager #########################
|
|
//#######################################################################
|
|
|
|
__int64 tHUDTime,tHUDTextureTime,tHUDTextTime,tHUDFrameTime,tHUDLineTime,tHUDRectTime;
|
|
namespace MechWarrior4
|
|
{
|
|
extern Scalar g_HUDHeatLevel,g_HUDPPCLevel;
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
MWGUIManager::MWGUIManager() :
|
|
GUIManager(),
|
|
m_ZoomVisible(false),
|
|
weaponManager (NULL),
|
|
lightAmp (NULL),
|
|
// zoomLightAmp (NULL),
|
|
staticViewManager (NULL),
|
|
vehicleInterface (NULL),
|
|
m_CurrentTarget (NULL),
|
|
m_targetElement (NULL)
|
|
{
|
|
#if !defined(NO_TIMERS)
|
|
AddStatistic( "Hud Time", "%", gos_timedata, (void*)&tHUDTime, 0 );
|
|
AddStatistic( " +-- Texture Time", "%", gos_timedata, (void*)&tHUDTextureTime, 0 );
|
|
AddStatistic( " +-- Text Time", "%", gos_timedata, (void*)&tHUDTextTime, 0 );
|
|
AddStatistic( " +-- Frame Time", "%", gos_timedata, (void*)&tHUDFrameTime, 0 );
|
|
AddStatistic( " +-- Line Time", "%", gos_timedata, (void*)&tHUDLineTime, 0 );
|
|
AddStatistic( " +-- Rect Time", "%", gos_timedata, (void*)&tHUDRectTime, 0 );
|
|
#endif
|
|
|
|
m_Vehicle = NULL;
|
|
InterfaceZoomMode = false;
|
|
gametype[0] = 0;
|
|
|
|
weaponManager = new GUIWeaponManager();
|
|
Register_Object(weaponManager);
|
|
m_ShutdownMode = false;
|
|
radarManager = NULL;
|
|
m_ShutdownMode = false;
|
|
hudnav = NULL;
|
|
hudTargetArrow = NULL;
|
|
hudTorsoBar = NULL;
|
|
hudZoom = NULL;
|
|
hudHeat = NULL;
|
|
hudJump = NULL;
|
|
hudCoolant = NULL;
|
|
hudSpeed = NULL;
|
|
hudDamage = NULL;
|
|
hudTargetDamage = NULL;
|
|
hudWeapon = NULL;
|
|
hudReticle = NULL;
|
|
hudChat = NULL;
|
|
hudComm = NULL;
|
|
hudHelp = NULL;
|
|
hudMap = NULL;
|
|
hudObjective = NULL;
|
|
hudScore = NULL;
|
|
hudTimer = NULL;
|
|
hudHelpArrow = NULL;
|
|
hudDebug = NULL;
|
|
hudmp = NULL;
|
|
hudCamera = NULL;
|
|
|
|
lightAmp = new GUILightAmp();
|
|
// zoomLightAmp = new GUILightAmp();
|
|
staticViewManager = new GUIStaticView();
|
|
|
|
m_TimerShowing = false;
|
|
m_DebugShowing = false;
|
|
m_HelpArrowShowing = false;
|
|
|
|
m_currentWidthRes = Environment.screenWidth;
|
|
|
|
weaponManager->guiManager = this;
|
|
// targetReticule = NULL;
|
|
// lockedTargetReticule = NULL;
|
|
currentSpeedValue = 0.0f;
|
|
torsoPitchValue = 0;
|
|
torsoTwistValue = 0;
|
|
m_isShown = SHOW_ALL;
|
|
m_LightAmpShowing = false;
|
|
m_torsoRotation = 0;
|
|
m_targetWindowAlignment = 0;
|
|
// m_zoomOn = 0;
|
|
// font = gos_LoadFont("Assets\\Graphics\\arial8.tga", 0);
|
|
|
|
m_targetXLocation = -1.0f;
|
|
m_targetYLocation = -1.0f;
|
|
m_targetHeight = 0.0f;
|
|
m_targetWidth = 0.0f;
|
|
m_playerFacing = 0;
|
|
m_navPointFacing = 0;
|
|
m_navPointRange = -1.0f;
|
|
m_navPointName = (char *)gos_Malloc(MaxStringLength);
|
|
Str_Copy(m_navPointName, "No Point Selected", MaxStringLength);
|
|
|
|
reticleName = (char *)gos_Malloc(MaxStringLength);
|
|
Str_Copy(reticleName, "No Target", MaxStringLength);
|
|
// MSL 5.02 SubSystems
|
|
IFF_Jammer = false; //iff jammer d/n exist by default
|
|
reticleAlignment = 0;
|
|
reticleDistance = 1000.0f;
|
|
// hudReticle->ReticleName (reticleName);
|
|
// hudReticle->ReticleRange (reticleDistance);
|
|
// hudWeapon->ReticleRange (reticleDistance);
|
|
|
|
// isHeatDirty = NULL;
|
|
// isCoolantDirty = NULL;
|
|
damageArray = NULL;
|
|
armorArray = NULL;
|
|
|
|
m_targetDamageArray = NULL;
|
|
m_targetArmorArray = NULL;
|
|
m_targetTonage = -1.0f;
|
|
m_targetWindowName = (char *)gos_Malloc(MaxStringLength);
|
|
Str_Copy(m_targetWindowName, "No Name", MaxStringLength);
|
|
|
|
ClearTargetIndicator();
|
|
Check_Object(Application::GetInstance());
|
|
|
|
heatValue = NULL;
|
|
coolantValue = NULL;
|
|
jumpValue = NULL;
|
|
maxJumpValue = 0;
|
|
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
MWGUIManager::~MWGUIManager()
|
|
{
|
|
Unregister_Object(weaponManager);
|
|
delete weaponManager;
|
|
|
|
m_Components.clear ();
|
|
// end new components
|
|
|
|
delete lightAmp;
|
|
// delete zoomLightAmp;
|
|
delete staticViewManager;
|
|
|
|
gos_Free(reticleName);
|
|
gos_Free(m_navPointName);
|
|
gos_Free(m_targetWindowName);
|
|
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::Execute()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(weaponManager);
|
|
Check_Object(radarManager);
|
|
if (VehicleInterface::GetInstance()->brbMode)
|
|
return;
|
|
|
|
GUIManager::Execute();
|
|
|
|
lightAmp->ChangeResolution();
|
|
if(m_currentWidthRes != Environment.screenWidth)
|
|
{
|
|
m_currentWidthRes = Environment.screenWidth;
|
|
// zoomLightAmp->ChangeResolution();
|
|
staticViewManager->ChangeResolution();
|
|
}
|
|
|
|
if(m_isShown)
|
|
{
|
|
// weaponManager->Draw();
|
|
// radarManager->Draw();
|
|
Check_Object(ObjectiveRenderer::Instance);
|
|
ObjectiveRenderer::Instance->Execute();
|
|
}
|
|
else
|
|
{
|
|
ClearTargetIndicator();
|
|
}
|
|
#ifdef _ICECAP
|
|
StartCAPAll ();
|
|
#endif
|
|
UpdateComponents ();
|
|
RenderComponents ();
|
|
#ifdef _ICECAP
|
|
StopCAPAll ();
|
|
#endif
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetWeaponMode(int weapon_mode,Weapon* weap)
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(weaponManager);
|
|
|
|
weaponManager->drawMode = weapon_mode;
|
|
hudWeapon->SingleFire (weap);
|
|
}
|
|
|
|
void MWGUIManager::CreateComponents (void)
|
|
{
|
|
Verify (radarManager == NULL);
|
|
Verify (hudnav == NULL);
|
|
Verify (hudTargetArrow == NULL);
|
|
Verify (hudTorsoBar == NULL);
|
|
Verify (hudZoom == NULL);
|
|
Verify (hudHeat == NULL);
|
|
Verify (hudJump == NULL);
|
|
Verify (hudCoolant == NULL);
|
|
Verify (hudSpeed == NULL);
|
|
Verify (hudDamage == NULL);
|
|
Verify (hudTargetDamage == NULL);
|
|
Verify (hudWeapon == NULL);
|
|
Verify (hudReticle == NULL);
|
|
Verify (hudChat == NULL);
|
|
Verify (hudComm == NULL);
|
|
Verify (hudHelp == NULL);
|
|
Verify (hudMap == NULL);
|
|
Verify (hudObjective == NULL);
|
|
Verify (hudScore == NULL);
|
|
Verify (hudTimer == NULL);
|
|
Verify (hudHelpArrow == NULL);
|
|
Verify (hudDebug == NULL);
|
|
Verify (hudmp == NULL);
|
|
Verify (hudCamera == NULL);
|
|
|
|
// new hud components
|
|
radarManager = new GUIRadarManager();
|
|
Register_Object(radarManager);
|
|
AddComponent (radarManager);
|
|
|
|
hudnav = new HUDNav ();
|
|
Register_Object(hudnav);
|
|
AddComponent (hudnav);
|
|
|
|
hudTargetArrow = new HUDTargetArrow ();
|
|
Register_Object(hudTargetArrow);
|
|
AddComponent (hudTargetArrow);
|
|
|
|
hudTorsoBar = new HUDTorsoBar ();
|
|
Register_Object(hudTorsoBar);
|
|
AddComponent (hudTorsoBar);
|
|
|
|
hudZoom = new HUDZoom ();
|
|
Register_Object(hudZoom);
|
|
AddComponent (hudZoom);
|
|
hudZoom->Hide ();
|
|
|
|
hudHeat = new HUDHeat ();
|
|
Register_Object (hudHeat);
|
|
AddComponent (hudHeat);
|
|
|
|
hudJump = new HUDJump ();
|
|
Register_Object (hudJump);
|
|
AddComponent (hudJump);
|
|
|
|
hudCoolant = new HUDCoolant ();
|
|
Register_Object (hudCoolant);
|
|
AddComponent (hudCoolant);
|
|
|
|
hudSpeed = new HUDSpeed ();
|
|
Register_Object (hudSpeed);
|
|
AddComponent (hudSpeed);
|
|
|
|
hudDamage = new HUDDamage ();
|
|
Register_Object (hudDamage);
|
|
AddComponent (hudDamage);
|
|
|
|
hudTargetDamage = new HUDTargetDamage ();
|
|
Register_Object (hudTargetDamage);
|
|
AddComponent (hudTargetDamage);
|
|
|
|
hudWeapon = new HUDWeapon ();
|
|
Register_Object (hudWeapon);
|
|
AddComponent (hudWeapon);
|
|
hudWeapon->WeaponManager (weaponManager);
|
|
|
|
hudComm = new HUDComm();
|
|
Register_Object (hudComm);
|
|
AddComponent (hudComm);
|
|
|
|
hudReticle = new HUDReticle();
|
|
Register_Object (hudReticle);
|
|
AddComponent (hudReticle);
|
|
|
|
hudChat = new HUDChat();
|
|
Register_Object (hudChat);
|
|
AddComponent (hudChat);
|
|
|
|
hudHelp = new HUDHelp();
|
|
Register_Object (hudHelp);
|
|
AddComponent (hudHelp);
|
|
|
|
hudMap = new HUDMap();
|
|
Register_Object (hudMap);
|
|
AddComponent (hudMap);
|
|
|
|
hudObjective = new HUDObjective();
|
|
Register_Object (hudObjective);
|
|
AddComponent (hudObjective);
|
|
|
|
hudScore = new HUDScore();
|
|
Register_Object (hudScore);
|
|
AddComponent (hudScore);
|
|
|
|
hudTimer = new HUDTimer();
|
|
Register_Object (hudTimer);
|
|
AddComponent (hudTimer);
|
|
|
|
hudHelpArrow = new HUDHelpArrow();
|
|
Register_Object (hudHelpArrow);
|
|
AddComponent (hudHelpArrow);
|
|
|
|
hudDebug = new HUDDebug();
|
|
Register_Object (hudDebug);
|
|
AddComponent (hudDebug);
|
|
|
|
hudmp = new HUDMP();
|
|
Register_Object (hudmp);
|
|
AddComponent (hudmp);
|
|
|
|
hudCamera = new HUDCamera ();
|
|
Register_Object (hudCamera);
|
|
AddComponent (hudCamera);
|
|
}
|
|
|
|
void MWGUIManager::ClearComponents (void)
|
|
{
|
|
// new components
|
|
if (radarManager)
|
|
{
|
|
Unregister_Object(radarManager);
|
|
delete radarManager;
|
|
}
|
|
|
|
if (hudnav)
|
|
{
|
|
Unregister_Object(hudnav);
|
|
delete hudnav;
|
|
}
|
|
|
|
if (hudTargetArrow)
|
|
{
|
|
Unregister_Object(hudTargetArrow);
|
|
delete hudTargetArrow;
|
|
}
|
|
|
|
if (hudTorsoBar)
|
|
{
|
|
Unregister_Object(hudTorsoBar);
|
|
delete hudTorsoBar;
|
|
}
|
|
|
|
if (hudZoom)
|
|
{
|
|
Unregister_Object(hudZoom);
|
|
delete hudZoom;
|
|
}
|
|
|
|
if (hudHeat)
|
|
{
|
|
Unregister_Object(hudHeat);
|
|
delete hudHeat;
|
|
}
|
|
|
|
if (hudJump)
|
|
{
|
|
Unregister_Object (hudJump);
|
|
delete hudJump;
|
|
}
|
|
|
|
if (hudCoolant)
|
|
{
|
|
Unregister_Object (hudCoolant);
|
|
delete hudCoolant;
|
|
}
|
|
|
|
if (hudSpeed)
|
|
{
|
|
Unregister_Object (hudSpeed);
|
|
delete hudSpeed;
|
|
}
|
|
|
|
if (hudDamage)
|
|
{
|
|
Unregister_Object (hudDamage);
|
|
delete hudDamage;
|
|
}
|
|
|
|
if (hudTargetDamage)
|
|
{
|
|
Unregister_Object (hudTargetDamage);
|
|
delete hudTargetDamage;
|
|
}
|
|
|
|
if (hudWeapon)
|
|
{
|
|
Unregister_Object (hudWeapon);
|
|
delete hudWeapon;
|
|
}
|
|
|
|
if (hudReticle)
|
|
{
|
|
Unregister_Object (hudReticle);
|
|
delete hudReticle;
|
|
}
|
|
|
|
if (hudChat)
|
|
{
|
|
Unregister_Object (hudChat);
|
|
delete hudChat;
|
|
}
|
|
|
|
if (hudComm)
|
|
{
|
|
Unregister_Object (hudComm);
|
|
delete hudComm;
|
|
}
|
|
|
|
if (hudHelp)
|
|
{
|
|
Unregister_Object (hudHelp);
|
|
delete hudHelp;
|
|
}
|
|
|
|
if (hudMap)
|
|
{
|
|
Unregister_Object (hudMap);
|
|
delete hudMap;
|
|
}
|
|
|
|
if (hudObjective)
|
|
{
|
|
Unregister_Object (hudObjective);
|
|
delete hudObjective;
|
|
}
|
|
|
|
if (hudScore)
|
|
{
|
|
Unregister_Object (hudScore);
|
|
delete hudScore;
|
|
}
|
|
|
|
if (hudTimer)
|
|
{
|
|
Unregister_Object (hudTimer);
|
|
delete hudTimer;
|
|
}
|
|
|
|
if (hudHelpArrow)
|
|
{
|
|
Unregister_Object (hudHelpArrow);
|
|
delete hudHelpArrow;
|
|
}
|
|
|
|
if (hudDebug)
|
|
{
|
|
Unregister_Object (hudDebug);
|
|
delete hudDebug;
|
|
}
|
|
|
|
if (hudmp)
|
|
{
|
|
Unregister_Object (hudmp);
|
|
delete hudmp;
|
|
}
|
|
if (hudCamera)
|
|
{
|
|
Unregister_Object (hudCamera);
|
|
delete hudCamera;
|
|
}
|
|
// new components
|
|
radarManager = NULL;
|
|
hudnav = NULL;
|
|
hudTargetArrow = NULL;
|
|
hudTorsoBar = NULL;
|
|
hudZoom = NULL;
|
|
hudHeat = NULL;
|
|
hudJump = NULL;
|
|
hudCoolant = NULL;
|
|
hudSpeed = NULL;
|
|
hudDamage = NULL;
|
|
hudTargetDamage = NULL;
|
|
hudWeapon = NULL;
|
|
hudReticle = NULL;
|
|
hudChat = NULL;
|
|
hudComm = NULL;
|
|
hudHelp = NULL;
|
|
hudMap = NULL;
|
|
hudObjective = NULL;
|
|
hudScore = NULL;
|
|
hudTimer = NULL;
|
|
hudHelpArrow = NULL;
|
|
hudDebug = NULL;
|
|
hudmp = NULL;
|
|
hudCamera = NULL;
|
|
m_Components.clear ();
|
|
}
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::InitializeNewVehicle(Vehicle *vehicle)
|
|
{
|
|
CreateComponents ();
|
|
|
|
if (lightAmp)
|
|
lightAmp->NewVehicle();
|
|
m_Vehicle = vehicle;
|
|
m_ShutdownMode = false;
|
|
if (!vehicle)
|
|
{
|
|
maxSpeed = 0;
|
|
Hide ();
|
|
// isHeatDirty = NULL;
|
|
// isCoolantDirty = NULL;
|
|
jumpValue = NULL;
|
|
maxJumpValue = 0;
|
|
heatValue = NULL;
|
|
coolantValue = NULL;
|
|
damageArray = NULL;
|
|
armorArray = NULL;
|
|
Reset();
|
|
return;
|
|
}
|
|
Check_Object(this);
|
|
const Vehicle__GameModel *model = vehicle->GetGameModel();
|
|
Check_Object(model);
|
|
|
|
maxSpeed = model->maxSpeed;
|
|
|
|
m_MapShowing = false;
|
|
Torso *torso = vehicle->GetTorso();
|
|
if(torso)
|
|
{
|
|
Check_Object(torso);
|
|
const Torso__GameModel *torso_model = torso->GetGameModel();
|
|
Check_Object(torso_model);
|
|
|
|
maxTorsoTwist = torso_model->twistRadius;
|
|
maxTorsoPitch = torso_model->pitchRadius;
|
|
}
|
|
|
|
jumpValue = NULL;
|
|
maxJumpValue = 0;
|
|
if(vehicle->IsDerivedFrom(Mech::DefaultData))
|
|
{
|
|
Mech *mech = Cast_Object(Mech *, vehicle);
|
|
damageArray = mech->damageArray;
|
|
armorArray = mech->armorArray;
|
|
if (armorArray)
|
|
hudDamage->ArmorValue (armorArray,true);
|
|
if (mech->GetJumpJet ())
|
|
{
|
|
JumpJet *jet;
|
|
jet = mech->GetJumpJet ();
|
|
jumpValue = jet->CurrentChargePtr ();
|
|
maxJumpValue = jet->GetMaxCharge ();
|
|
}
|
|
}
|
|
|
|
m_targetDamageArray = NULL;
|
|
m_targetArmorArray = NULL;
|
|
m_targetTonage = -1.0f;
|
|
|
|
ClearTargetIndicator();
|
|
coolantValue = &vehicle->m_heatManager->coolantPercentage;
|
|
heatValue = &vehicle->m_heatManager->heatPercentage;
|
|
// isHeatDirty = &vehicle->m_heatManager->isHeatDirty;
|
|
// isCoolantDirty = &vehicle->m_heatManager->isCoolantDirty;
|
|
|
|
// MSL 5.05 Merc Fix?
|
|
// initialize this so no crash after respawn
|
|
hudnav->PlayerFacing (0);
|
|
|
|
m_isShown = SHOW_ALL;
|
|
m_ShowLevel = m_isShown;
|
|
m_drawScoring = false;
|
|
Reset ();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::InitializeTargetSystem()
|
|
{
|
|
Check_Object(this);
|
|
HideHudComponent (HUD_RADAR);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::DisplayTargetSystem(bool locked)
|
|
{
|
|
Check_Object(this);
|
|
|
|
isReticleLocked = (int)locked;
|
|
hudReticle->IsReticleLocked (isReticleLocked);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::DisplayTargetSystemLRM(bool locked)
|
|
{
|
|
Check_Object(this);
|
|
|
|
isReticleLockedLRM = (int)locked;
|
|
hudReticle->IsReticleLockedLRM (isReticleLockedLRM);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::DisplayTargetSystemMRM(bool locked)
|
|
{
|
|
Check_Object(this);
|
|
|
|
isReticleLockedMRM = (int)locked;
|
|
hudReticle->IsReticleLockedMRM (isReticleLockedMRM);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::DisplayTargetSystemSRM(bool locked)
|
|
{
|
|
Check_Object(this);
|
|
|
|
isReticleLockedSRM = (int)locked;
|
|
hudReticle->IsReticleLockedSRM (isReticleLockedSRM);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::DisplayTargetSystemSSRM(bool locked)
|
|
{
|
|
Check_Object(this);
|
|
|
|
isReticleLockedSSRM = (int)locked;
|
|
hudReticle->IsReticleLockedSSRM (isReticleLockedSSRM);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::ClearGUIChain()
|
|
{
|
|
Check_Object(this);
|
|
|
|
GUIManager::ClearGUIChain();
|
|
if(weaponManager)
|
|
{
|
|
Check_Object(weaponManager);
|
|
weaponManager->ClearWeaponsManager();
|
|
}
|
|
ClearComponents ();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetSpeedBar(Stuff::Scalar value,Stuff::Scalar minForward,Stuff::Scalar minReverse,Stuff::Scalar maxForward,Stuff::Scalar maxReverse)
|
|
{
|
|
Check_Object(this);
|
|
|
|
currentSpeedValue = value;
|
|
hudSpeed->Speed (currentSpeedValue,minForward,minReverse,maxForward,maxReverse);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetTorsoPitch(Scalar value)
|
|
{
|
|
Check_Object(this);
|
|
|
|
torsoPitchValue = (int)((value / maxTorsoPitch) * 100);
|
|
hudTorsoBar->TorsoPitch ((Scalar) torsoPitchValue);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetTorsoTwist(Scalar value)
|
|
{
|
|
Check_Object(this);
|
|
|
|
m_torsoRotation = (int)(value * Degrees_Per_Radian);
|
|
radarManager->TorsoTwist (value);
|
|
hudMap->TorsoTwist (value);
|
|
torsoTwistValue = (int)((value / maxTorsoTwist) * 100);
|
|
hudTorsoBar->TorsoTwist ((Scalar) torsoTwistValue);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetReticuleTarget (Entity *target_entity)
|
|
{
|
|
hudTargetDamage->ReticuleTarget (target_entity);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetReticleName(const char *object_name)
|
|
{
|
|
Check_Object(this);
|
|
|
|
if (object_name)
|
|
Str_Copy(reticleName, object_name, MaxStringLength);
|
|
else
|
|
Str_Copy(reticleName, "No Target", MaxStringLength);
|
|
|
|
hudReticle->ReticleName (reticleName);
|
|
hudReticle->ReticleRange (reticleDistance);
|
|
hudWeapon->ReticleRange (reticleDistance);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::Reset()
|
|
{
|
|
Check_Object(this);
|
|
|
|
m_isShown = SHOW_ALL;
|
|
m_drawScoring = false;
|
|
m_ZoomVisible = false;
|
|
m_HelpArrowShowing = false;
|
|
m_TimerShowing = false;
|
|
m_DebugShowing = false;
|
|
|
|
stlport::vector <HUDComponent *>::iterator iter;
|
|
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
(*iter)->SetVehicle (m_Vehicle);
|
|
(*iter)->Reset ();
|
|
}
|
|
|
|
Show ();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::Hide()
|
|
{
|
|
Check_Object(this);
|
|
if (!m_Components.size ())
|
|
return;
|
|
|
|
if (VehicleInterface::GetInstance()->m_targetCamera)
|
|
{
|
|
ElementRenderer::Element *fred;
|
|
if (m_targetElement.GetCurrent ())
|
|
m_targetElement.Remove ();
|
|
fred = VehicleInterface::GetInstance()->m_targetCamera->GetScene();
|
|
if (fred)
|
|
m_targetElement.Add (fred);
|
|
VehicleInterface::GetInstance()->m_targetCamera->SetScene(NULL);
|
|
}
|
|
|
|
m_isShown = HIDE_ALL;
|
|
stlport::vector <HUDComponent *>::iterator iter;
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
(*iter)->Hide ();
|
|
}
|
|
ShowZoom (m_ZoomVisible);
|
|
ShowMap (m_MapShowing);
|
|
ShowHelpArrow (m_HelpArrowShowing);
|
|
ShowTimer (m_TimerShowing);
|
|
ShowDebug (m_DebugShowing);
|
|
}
|
|
|
|
void MWGUIManager::ReshowHud (void)
|
|
{
|
|
switch (m_ShowLevel)
|
|
{
|
|
case HIDE_ALL:
|
|
Hide ();
|
|
break;
|
|
case SHOW_ALL:
|
|
Show ();
|
|
break;
|
|
case SHOW_RETICLE:
|
|
ShowReticle ();
|
|
break;
|
|
}
|
|
}
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::Show()
|
|
{
|
|
Check_Object(this);
|
|
|
|
if (!m_Components.size ())
|
|
return;
|
|
|
|
if(VehicleInterface::GetInstance() && VehicleInterface::GetInstance()->m_targetCamera && m_targetElement.GetCurrent ())
|
|
{
|
|
VehicleInterface::GetInstance()->m_targetCamera->SetScene(m_targetElement.GetCurrent ());
|
|
m_targetElement.Remove ();
|
|
}
|
|
|
|
stlport::vector <HUDComponent *>::iterator iter;
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
(*iter)->Show ();
|
|
}
|
|
if(!MWApplication::GetInstance()->networkingFlag)
|
|
hudChat->Hide ();
|
|
|
|
m_isShown = SHOW_ALL;
|
|
ShowZoom (m_ZoomVisible);
|
|
ShowMap (m_MapShowing);
|
|
ShowHelpArrow (m_HelpArrowShowing);
|
|
ShowTimer (m_TimerShowing);
|
|
ShowDebug (m_DebugShowing);
|
|
|
|
/*
|
|
if (m_Vehicle)
|
|
hudCamera->Hide ();
|
|
else
|
|
hudCamera->Show ();
|
|
*/
|
|
|
|
if (m_drawScoring)
|
|
ShowScoring ();
|
|
else
|
|
HideScoring ();
|
|
|
|
if (m_Vehicle && !VehicleInterface::GetInstance()->IsObserving())
|
|
hudCamera->Hide ();
|
|
else
|
|
hudCamera->Show ();
|
|
}
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::ShowReticle()
|
|
{
|
|
Check_Object(this);
|
|
|
|
if (VehicleInterface::GetInstance()->m_targetCamera)
|
|
{
|
|
ElementRenderer::Element *fred;
|
|
if (m_targetElement.GetCurrent ())
|
|
m_targetElement.Remove ();
|
|
fred = VehicleInterface::GetInstance()->m_targetCamera->GetScene();
|
|
if (fred)
|
|
m_targetElement.Add (fred);
|
|
VehicleInterface::GetInstance()->m_targetCamera->SetScene(NULL);
|
|
}
|
|
|
|
m_isShown = SHOW_RETICLE;
|
|
stlport::vector <HUDComponent *>::iterator iter;
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
(*iter)->Hide ();
|
|
}
|
|
hudTargetArrow->Show ();
|
|
hudReticle->Show ();
|
|
hudTorsoBar->Show ();
|
|
ShowZoom (m_ZoomVisible);
|
|
ShowMap (m_MapShowing);
|
|
ShowHelpArrow (m_HelpArrowShowing);
|
|
ShowTimer (m_TimerShowing);
|
|
ShowDebug (m_DebugShowing);
|
|
if (m_Vehicle)
|
|
hudCamera->Hide ();
|
|
else
|
|
hudCamera->Show ();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::Toggle()
|
|
{
|
|
Check_Object(this);
|
|
|
|
if (!m_Vehicle)
|
|
{
|
|
switch (m_isShown)
|
|
{
|
|
case HIDE_ALL:
|
|
ShowReticle ();
|
|
m_ShowLevel = m_isShown;
|
|
break;
|
|
case SHOW_RETICLE:
|
|
Show ();
|
|
m_ShowLevel = m_isShown;
|
|
break;
|
|
case SHOW_ALL:
|
|
Hide ();
|
|
m_ShowLevel = m_isShown;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (m_isShown)
|
|
{
|
|
case HIDE_ALL:
|
|
ShowReticle ();
|
|
m_ShowLevel = m_isShown;
|
|
break;
|
|
case SHOW_RETICLE:
|
|
Show ();
|
|
m_ShowLevel = m_isShown;
|
|
break;
|
|
case SHOW_ALL:
|
|
Hide ();
|
|
m_ShowLevel = m_isShown;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::ToggleScoring()
|
|
{
|
|
Check_Object(this);
|
|
|
|
if(m_drawScoring)
|
|
m_drawScoring = false;
|
|
else
|
|
m_drawScoring = true;
|
|
|
|
if (m_drawScoring)
|
|
ShowScoring ();
|
|
else
|
|
HideScoring ();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::ShowScoring()
|
|
{
|
|
Check_Object(this);
|
|
|
|
m_drawScoring = true;
|
|
hudScore->Show ();
|
|
if (VehicleInterface::GetInstance ())
|
|
{
|
|
InterfaceZoomMode = VehicleInterface::GetInstance ()->reticuleZoomShowing;
|
|
VehicleInterface::GetInstance ()->requestedZoomChange = false;
|
|
VehicleInterface::GetInstance ()->userRequestForreticuleZoomChange = true;
|
|
}
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::HideScoring()
|
|
{
|
|
Check_Object(this);
|
|
|
|
m_drawScoring = false;
|
|
hudScore->Hide ();
|
|
if (VehicleInterface::GetInstance ())
|
|
if (InterfaceZoomMode != VehicleInterface::GetInstance ()->reticuleZoomShowing)
|
|
{
|
|
VehicleInterface::GetInstance ()->requestedZoomChange = InterfaceZoomMode;
|
|
VehicleInterface::GetInstance ()->userRequestForreticuleZoomChange = true;
|
|
}
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::ShowLightAmplification()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(lightAmp);
|
|
// Check_Object (zoomLightAmp);
|
|
|
|
if (m_Vehicle)
|
|
{
|
|
if(m_Vehicle->DoesHaveLightAmp())
|
|
{
|
|
lightAmp->Show();
|
|
// zoomLightAmp->Show ();
|
|
m_LightAmpShowing = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::HideLightAmplification()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(lightAmp);
|
|
// Check_Object (zoomLightAmp);
|
|
|
|
lightAmp->Hide();
|
|
// zoomLightAmp->Hide ();
|
|
m_LightAmpShowing = false;
|
|
}
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::ShowStaticView()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(staticViewManager);
|
|
|
|
staticViewManager->Show();
|
|
}
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::AnimateStaticView()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(staticViewManager);
|
|
|
|
|
|
staticViewManager->Animate();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::HideStaticView()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object(staticViewManager);
|
|
|
|
staticViewManager->Hide();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetNavSystem(Stuff::Scalar facing_angle,Stuff::Scalar nav_point_angle,Stuff::Scalar range,int nav_point_id)
|
|
{
|
|
Check_Object(this);
|
|
|
|
if(facing_angle < 0.0f)
|
|
facing_angle += Two_Pi;
|
|
|
|
facing_angle = Two_Pi - facing_angle;
|
|
|
|
m_playerFacing = (int)(facing_angle * Degrees_Per_Radian);
|
|
hudnav->PlayerFacing (m_playerFacing);
|
|
|
|
// if(nav_point_angle < 0.0f)
|
|
// nav_point_angle += Two_Pi;
|
|
|
|
m_navPointFacing = (int)(nav_point_angle * Degrees_Per_Radian);
|
|
m_navPointRange = range;
|
|
hudnav->NavPointFacing (m_navPointFacing);
|
|
hudnav->NavPointRange ((int) m_navPointRange);
|
|
|
|
if(nav_point_id != NameTable::NullObjectID)
|
|
{
|
|
Check_Object(NameTable::GetInstance());
|
|
NavPoint *nav;
|
|
Entity *ent;
|
|
ent = NameTable::GetInstance()->FindData (nav_point_id);
|
|
Verify (ent->IsDerivedFrom (NavPoint::DefaultData));
|
|
nav = Cast_Object (NavPoint *,ent);
|
|
Str_Copy(m_navPointName,nav->GetObjectName (), MaxStringLength);
|
|
}
|
|
else
|
|
Str_Copy(m_navPointName, "No Point Selected", MaxStringLength);
|
|
|
|
hudnav->NavPointName (m_navPointName);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetTargetPosition(CameraComponent *camera, const Point3D& target_world, const Point3D& target_size,
|
|
Stuff::Scalar cameraWidth, Stuff::Scalar cameraHeight,
|
|
Stuff::Scalar cameraOffsetX, Stuff::Scalar cameraOffsetY)
|
|
{
|
|
Check_Object(this);
|
|
|
|
if (target_world.y < -1000)
|
|
{
|
|
hudTargetArrow->TargetLoc (-1,-1,-1,-1);
|
|
return;
|
|
}
|
|
|
|
MidLevelRenderer::MLRClipper *clipper;
|
|
camera->GetElement()->Sync();
|
|
clipper = camera->GetElement()->GetClipper();
|
|
|
|
Check_Object(clipper);
|
|
clipper->UpdateClipperCameraData(
|
|
camera->GetElement()->GetLocalToWorld(),
|
|
camera->GetElement()->GetCameraToClip()
|
|
);
|
|
|
|
|
|
Vector4D target_in_clipper;
|
|
|
|
target_in_clipper.Multiply(target_world, clipper->GetWorldToClipMatrix());
|
|
|
|
m_targetXLocation = (target_in_clipper.x / target_in_clipper.w);
|
|
Clamp(m_targetXLocation, 0.0f, 1.0f);
|
|
m_targetXLocation *= -cameraWidth;
|
|
m_targetXLocation += cameraWidth + cameraOffsetX;
|
|
m_targetYLocation = (target_in_clipper.y / target_in_clipper.w);
|
|
Clamp(m_targetYLocation, 0.0f, 1.0f);
|
|
m_targetYLocation *= -cameraHeight;
|
|
m_targetYLocation += cameraHeight + cameraOffsetY;
|
|
|
|
if (!Small_Enough(target_size))
|
|
{
|
|
FindTargetBoxSize(clipper, target_world, target_size, m_targetWidth, m_targetHeight);
|
|
m_targetHeight *= -cameraHeight;
|
|
m_targetWidth *= -cameraWidth;
|
|
}
|
|
else
|
|
{
|
|
m_targetWidth = 0.0f;
|
|
m_targetHeight = 0.0f;
|
|
}
|
|
|
|
|
|
hudTargetArrow->TargetLoc (m_targetXLocation,m_targetYLocation, m_targetWidth, m_targetHeight);
|
|
}
|
|
|
|
void MWGUIManager::FindTargetBoxSize(MidLevelRenderer::MLRClipper *clipper, const Point3D & target_world, const Point3D & target_size, Stuff::Scalar & targetWidth, Stuff::Scalar & targetHeight)
|
|
{
|
|
Stuff::Point3D box_corners[8];
|
|
|
|
box_corners[0].x =
|
|
box_corners[3].x =
|
|
box_corners[4].x =
|
|
box_corners[7].x =
|
|
target_world.x - target_size.x;
|
|
box_corners[1].x =
|
|
box_corners[2].x =
|
|
box_corners[5].x =
|
|
box_corners[6].x =
|
|
target_world.x + target_size.x;
|
|
|
|
box_corners[2].y =
|
|
box_corners[3].y =
|
|
box_corners[7].y =
|
|
box_corners[6].y =
|
|
target_world.y - target_size.y;
|
|
box_corners[0].y =
|
|
box_corners[1].y =
|
|
box_corners[4].y =
|
|
box_corners[5].y =
|
|
target_world.y + target_size.y;
|
|
|
|
box_corners[0].z =
|
|
box_corners[1].z =
|
|
box_corners[2].z =
|
|
box_corners[3].z =
|
|
target_world.z - target_size.z;
|
|
box_corners[4].z =
|
|
box_corners[5].z =
|
|
box_corners[6].z =
|
|
box_corners[7].z =
|
|
target_world.z + target_size.z;
|
|
|
|
//
|
|
// Set to values that will be overwritten on the first test since they are out of range
|
|
//
|
|
Stuff::Scalar min_corner_XLocation = -1.0;
|
|
Stuff::Scalar min_corner_YLocation = -1.0;
|
|
Stuff::Scalar max_corner_XLocation = 2.0;
|
|
Stuff::Scalar max_corner_YLocation = 2.0;
|
|
//
|
|
// Look for the bounding rectangle in the 2d view by mapping to 2d and finding min/max x and y
|
|
//
|
|
for (int i = 0; i < 8; i++)
|
|
{
|
|
Vector4D target_in_clipper;
|
|
Stuff::Scalar corner_XLocation;
|
|
Stuff::Scalar corner_YLocation;
|
|
|
|
target_in_clipper.Multiply(box_corners[i], clipper->GetWorldToClipMatrix());
|
|
|
|
corner_XLocation = (target_in_clipper.x / target_in_clipper.w);
|
|
Clamp(corner_XLocation, 0.0f, 1.0f);
|
|
corner_YLocation = (target_in_clipper.y / target_in_clipper.w);
|
|
Clamp(corner_YLocation, 0.0f, 1.0f);
|
|
//
|
|
// For the purpose of these tests min and max are reverse meaning since they are going to be multiplied by a
|
|
// negative number down below when we want the real value.
|
|
//
|
|
min_corner_XLocation = (min_corner_XLocation >= corner_XLocation ? min_corner_XLocation : corner_XLocation);
|
|
max_corner_XLocation = (max_corner_XLocation <= corner_XLocation ? max_corner_XLocation : corner_XLocation);
|
|
min_corner_YLocation = (min_corner_YLocation >= corner_YLocation ? min_corner_YLocation : corner_YLocation);
|
|
max_corner_YLocation = (max_corner_YLocation <= corner_YLocation ? max_corner_YLocation : corner_YLocation);
|
|
}
|
|
targetHeight = max_corner_YLocation - min_corner_YLocation;
|
|
targetWidth = max_corner_XLocation - min_corner_XLocation;
|
|
//
|
|
// Don't let the minimum, size go below some fixed size vs. the screen.
|
|
// (We're still using negative coordinates here)
|
|
Max_Clamp(targetHeight, -0.050f);
|
|
Max_Clamp(targetWidth, -0.050f);
|
|
}
|
|
|
|
void MWGUIManager::SetLeftTargetIndicator()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object (hudTargetArrow);
|
|
m_leftTargetIndicator = 1;
|
|
hudTargetArrow->LeftArrow ();
|
|
}
|
|
|
|
void MWGUIManager::SetRightTargetIndicator()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object (hudTargetArrow);
|
|
m_rightTargetIndicator = 1;
|
|
hudTargetArrow->RightArrow ();
|
|
}
|
|
|
|
|
|
void MWGUIManager::SetTopTargetIndicator()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object (hudTargetArrow);
|
|
m_topTargetIndicator = 1;
|
|
hudTargetArrow->TopArrow ();
|
|
}
|
|
|
|
void MWGUIManager::SetBottomTargetIndicator()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object (hudTargetArrow);
|
|
m_bottomTargetIndicator = 1;
|
|
hudTargetArrow->BottomArrow ();
|
|
}
|
|
|
|
void MWGUIManager::SetTargetIndicatorInZoom()
|
|
{
|
|
Check_Object(this);
|
|
Check_Object (hudTargetArrow);
|
|
m_targetIndicatorInZoom = 1;
|
|
hudTargetArrow->IndicatorInZoom (true);
|
|
}
|
|
|
|
void MWGUIManager::ClearTargetIndicator()
|
|
{
|
|
Check_Object(this);
|
|
m_leftTargetIndicator = 0;
|
|
m_rightTargetIndicator = 0;
|
|
m_topTargetIndicator = 0;
|
|
m_bottomTargetIndicator = 0;
|
|
m_targetIndicatorInZoom = 0;
|
|
if (hudTargetArrow)
|
|
{
|
|
hudTargetArrow->IndicatorInZoom(false);
|
|
hudTargetArrow->TargetLoc (-1.0f,-1.0f, 0.0f, 0.0f);
|
|
}
|
|
m_targetXLocation = -1;
|
|
m_targetYLocation = -1;
|
|
m_targetHeight = 0.0f;
|
|
m_targetWidth = 0.0f;
|
|
}
|
|
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void MWGUIManager::SetNewTargetWindowEntity(Entity *new_target)
|
|
{
|
|
Check_Object(this);
|
|
|
|
if (m_CurrentTarget.GetCurrent ())
|
|
m_CurrentTarget.Remove ();
|
|
hudTargetDamage->Target (new_target);
|
|
if(new_target)
|
|
{
|
|
m_CurrentTarget.Add (new_target);
|
|
radarManager->CurrentTarget (new_target);
|
|
hudMap->CurrentTarget (new_target);
|
|
|
|
if (m_Vehicle != 0)
|
|
m_targetWindowAlignment = (m_Vehicle->GetRelativeAlignment(new_target->GetAlignment()));
|
|
else
|
|
m_targetWindowAlignment = (new_target->GetAlignment());
|
|
|
|
hudTargetArrow->TargetAlignment (m_targetWindowAlignment);
|
|
hudTargetDamage->TargetAlignment(m_targetWindowAlignment);
|
|
|
|
/*
|
|
MString target_name = new_target->GetGameModelResourceName();
|
|
target_name.StripDirectory();
|
|
target_name.StripExtension();
|
|
*/
|
|
if (new_target->GetObjectName())
|
|
Str_Copy(m_targetWindowName, (char *)new_target->GetObjectName(), MaxStringLength);
|
|
else
|
|
m_targetWindowName[0] = 0;
|
|
|
|
if (new_target->IsDerivedFrom (Vehicle::DefaultData))
|
|
{
|
|
Vehicle *veh;
|
|
veh = Cast_Object (Vehicle *,new_target);
|
|
m_targetArmorArray = veh->armorArray;
|
|
}
|
|
if(new_target->IsDerivedFrom(Mech::DefaultData))
|
|
{
|
|
Mech *mech = Cast_Object(Mech *, new_target);
|
|
m_targetDamageArray = mech->damageArray;
|
|
|
|
m_targetTonage = mech->GetTonage();
|
|
|
|
if(mech->isPlayerVehicle)
|
|
{
|
|
Str_Copy(m_targetWindowName, (char *)mech->instanceName, MaxStringLength);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
m_targetDamageArray = NULL;
|
|
m_targetTonage = -1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
m_targetTonage = 0;
|
|
m_targetWindowName[0] = 0;
|
|
radarManager->CurrentTarget (NULL);
|
|
hudMap->CurrentTarget (NULL);
|
|
}
|
|
|
|
hudTargetDamage->TargetName (m_targetWindowName);
|
|
//hudTargetArrow->TargetName (m_targetWindowName);
|
|
hudTargetDamage->TargetTonnage (m_targetTonage);
|
|
}
|
|
|
|
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// New HUD system
|
|
//
|
|
|
|
void MWGUIManager::AddComponent (HUDComponent *comp)
|
|
{
|
|
m_Components.push_back (comp);
|
|
}
|
|
|
|
bool VehicleInsideObjectiveArea(MechWarrior4::Vehicle& vehicle)
|
|
{
|
|
MWMission* mission = Cast_Object(MWMission*,MWMission::GetInstance());
|
|
CBucketManager* bucketman = mission->m_BucketManager;
|
|
|
|
if (bucketman != 0)
|
|
{
|
|
const stlport::vector<Vehicle*>& v = bucketman->GetVehiclesInsideObjectiveArea();
|
|
|
|
{for (stlport::vector<Vehicle*>::const_iterator i = v.begin();
|
|
i != v.end();
|
|
++i)
|
|
{
|
|
if ((*i) == &vehicle)
|
|
{
|
|
return (true);
|
|
}
|
|
}}
|
|
}
|
|
|
|
return (false);
|
|
}
|
|
|
|
void MWGUIManager::UpdateComponents (void)
|
|
{
|
|
if (hudScore)
|
|
hudScore->GameType (gametype);
|
|
if(heatValue)
|
|
hudHeat->Heat (*heatValue);
|
|
if(coolantValue)
|
|
hudCoolant->Coolant (*coolantValue);
|
|
if (jumpValue)
|
|
hudJump->Jump (DECRYPT(*jumpValue),maxJumpValue);
|
|
else
|
|
hudJump->Jump (-1.0f,0);
|
|
|
|
if (damageArray)
|
|
hudDamage->DamageValue (damageArray);
|
|
if (armorArray)
|
|
hudDamage->ArmorValue (armorArray,false);
|
|
|
|
// MSL 5.02 SubSystems
|
|
Scalar dist = 1000;
|
|
|
|
if ((m_CurrentTarget.GetCurrent ()) && (m_Vehicle))
|
|
{
|
|
Point3D loc1 (m_Vehicle->GetLocalToWorld ());
|
|
Point3D loc2 (m_CurrentTarget.GetCurrent ()->GetLocalToWorld ());
|
|
Point3D loc3;
|
|
loc3.Subtract (loc1,loc2);
|
|
Scalar dist = loc3.GetLength ();
|
|
hudTargetDamage->TargetRange (dist); // hudTargetArrow->TargetRange (dist);
|
|
}
|
|
|
|
// MSL 5.02 SubSystems
|
|
if (m_Vehicle != 0)
|
|
{
|
|
if ( (GetReticleIFFJammer())
|
|
// && (m_Vehicle->GetRelativeAlignment(reticleAlignment) == Entity::Enemy)
|
|
&& (hudReticle->GetReticleRange() >= 200)
|
|
)
|
|
{
|
|
hudReticle->ReticleAlignment (Entity::DefaultAlignment);
|
|
}
|
|
else
|
|
hudReticle->ReticleAlignment (m_Vehicle->GetRelativeAlignment(reticleAlignment));
|
|
}
|
|
else
|
|
{
|
|
hudReticle->ReticleAlignment (reticleAlignment);
|
|
}
|
|
|
|
|
|
if (MWApplication::GetInstance()->networkingFlag)
|
|
{
|
|
if (m_Vehicle != 0)
|
|
{
|
|
ShowFlag(Flag::AnyFlagsAttachedTo(*m_Vehicle));
|
|
ShowKOTF(VehicleInsideObjectiveArea(*m_Vehicle));
|
|
}
|
|
else
|
|
{
|
|
ShowKOTF(false);
|
|
}
|
|
|
|
MWMission* mission = Cast_Object(MWMission*,MWMission::GetInstance());
|
|
if (mission != 0)
|
|
{
|
|
//if (MWApplication::GetInstance()->serverFlag)
|
|
//{
|
|
MPTimeLeft(mission->GetEndMissionTime());
|
|
//}
|
|
//else
|
|
//{
|
|
// MPTimeLeft(-1.0f);
|
|
//}
|
|
|
|
}
|
|
}
|
|
|
|
// if (VehicleInterface::GetInstance())
|
|
// hudChat->SetCurrentChat (VehicleInterface::GetInstance()->m_CurrentChatMessage);
|
|
|
|
Stuff::Time current;
|
|
current = gos_GetElapsedTime ();
|
|
stlport::vector <HUDComponent *>::iterator iter;
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
(*iter)->Update (current);
|
|
}
|
|
}
|
|
|
|
void MWGUIManager::HeatLevel (Scalar level)
|
|
{
|
|
g_HUDHeatLevel = level;
|
|
}
|
|
|
|
void MWGUIManager::AddPPCLevel (Scalar level)
|
|
{
|
|
g_HUDPPCLevel += level;
|
|
}
|
|
|
|
|
|
void MWGUIManager::RenderComponents (void)
|
|
{
|
|
#if !defined(NO_TIMERS)
|
|
MW4AI::my_AutoTimer fred ((void *) &tHUDTime);
|
|
#endif
|
|
|
|
if (VehicleInterface::GetInstance()->cinemaPlaying)
|
|
{
|
|
if (VehicleInterface::GetInstance()->m_targetCamera)
|
|
{
|
|
ElementRenderer::Element *fred;
|
|
fred = VehicleInterface::GetInstance()->m_targetCamera->GetScene();
|
|
if (fred)
|
|
{
|
|
if (m_targetElement.GetCurrent ())
|
|
m_targetElement.Remove ();
|
|
m_targetElement.Add (fred);
|
|
VehicleInterface::GetInstance()->m_targetCamera->SetScene(NULL);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
gos_PushRenderStates ();
|
|
HUDTexture::StartTexturePass ();
|
|
stlport::vector <HUDComponent *>::iterator iter;
|
|
|
|
if (!m_drawScoring && !VehicleInterface::GetInstance()->IsObserving())
|
|
{
|
|
if ((m_Vehicle) )
|
|
{
|
|
if(!m_Vehicle->vehicleShutDown){
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
// jcem - no Lancemate...
|
|
#if !defined(_DEBUG)
|
|
if (hudComm == (*iter)) {
|
|
if (g_bCOOP)
|
|
continue;
|
|
}
|
|
#endif // !defined(_DEBUG)
|
|
if (hudHelpArrow == (*iter))
|
|
continue;
|
|
if ((hudChat == (*iter)) || (hudScore == (*iter)) || (hudDebug == (*iter)) || (hudCamera == (*iter)))
|
|
(*iter)->Draw (true);
|
|
else
|
|
(*iter)->Draw ();
|
|
}
|
|
}else{
|
|
//»óÈÆ... ¼Ë´Ù¿î ÁßÀ϶§..
|
|
for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
|
|
{
|
|
//Main hudZoom,//hudReticle,hudObjective,hudTorsoBar,hudHelp,hudScore
|
|
//Secondary hudHeat,hudJump,hudCoolant,hudSpeed,//radarManager
|
|
//Aux hudChat(1),hudNav(2),hudWeapon(3),hudDamage(5),//hudTargetDamage(4)
|
|
// jcem - no Lancemate...
|
|
#if !defined(_DEBUG)
|
|
if (hudComm == (*iter)) {
|
|
if (g_bCOOP)
|
|
continue;
|
|
}
|
|
#endif // !defined(_DEBUG)
|
|
if (hudHelpArrow == (*iter))
|
|
continue;
|
|
if ( hudChat == (*iter) )
|
|
(*iter)->Draw(true);
|
|
if(
|
|
hudZoom == (*iter)||
|
|
hudHeat == (*iter)||
|
|
hudJump == (*iter)||
|
|
hudCoolant == (*iter)||
|
|
hudSpeed == (*iter)||
|
|
hudChat == (*iter)||
|
|
hudnav == (*iter)||
|
|
hudWeapon == (*iter)||
|
|
hudDamage == (*iter)
|
|
)
|
|
(*iter)->Draw();
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
hudChat->Draw (true);
|
|
hudCamera->Draw (true);
|
|
// MSL 5.05 Merc Fix?
|
|
// want to draw the objectives in an objective-based Multiplayer game if you're dead
|
|
hudObjective->Draw(true);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//»óÈÆ-¾Õ
|
|
extern CamerashipParams g_CamerashipParams;
|
|
if (CTCL_IsConsoleX() || g_CamerashipParams.m_bAllowChatDisplay)
|
|
hudChat->Draw (true);
|
|
//»óÈÆ-µÚ
|
|
hudScore->Draw (true);
|
|
hudCamera->Draw(true);
|
|
}
|
|
HUDTexture::EndTexturePass ();
|
|
if (!VehicleInterface::GetInstance()->IsObserving())
|
|
hudHelpArrow->Draw (); // want it to always be on top
|
|
hudDebug->Draw ();
|
|
gos_PopRenderStates ();
|
|
|
|
|
|
//»óÈÆ ¾Õ
|
|
MWApplication* app = MWApplication::GetInstance();
|
|
if (app->networkingFlag)
|
|
{
|
|
MWMission *mwmiss= Cast_Object(MWMission*, MWMission::GetInstance());
|
|
Verify (mwmiss);
|
|
// MSL 5.02 Black Screen Fix
|
|
Stuff::Scalar current_time=mwmiss->GetMissionTime();
|
|
#define TIME_END_MISSION_FADEOUT 3.0f
|
|
#define TIME_END_MISSION_FADEOUT2 0.1f
|
|
if (current_time < TIME_END_MISSION_FADEOUT)
|
|
{
|
|
MWVideoRenderer *vid_rend = Cast_Object(MWVideoRenderer *, VideoRenderer::Instance);
|
|
Stuff::RGBColor color;
|
|
color = RGBColor(0.0f, 0.0f, 0.0f);
|
|
Scalar fadelevel=0;
|
|
vid_rend->SetFadeLevel(fadelevel, color);
|
|
}
|
|
if (current_time >= TIME_END_MISSION_FADEOUT)
|
|
{
|
|
Stuff::Scalar scalar_time=mwmiss->CheckEndMissionTime();
|
|
if (scalar_time<TIME_END_MISSION_FADEOUT)
|
|
{
|
|
MWVideoRenderer *vid_rend = Cast_Object(MWVideoRenderer *, VideoRenderer::Instance);
|
|
Stuff::RGBColor color;
|
|
color = RGBColor(0.0f, 0.0f, 0.0f);
|
|
Scalar fadelevel=0;
|
|
|
|
if (scalar_time<TIME_END_MISSION_FADEOUT2)
|
|
fadelevel=255;
|
|
else
|
|
fadelevel=(TIME_END_MISSION_FADEOUT-scalar_time)/TIME_END_MISSION_FADEOUT;//0~1
|
|
vid_rend->SetFadeLevel(fadelevel, color);
|
|
}
|
|
}
|
|
}
|
|
//»óÈÆ µÚ
|
|
}
|
|
|
|
void MWGUIManager::ShowHelpArrow (bool value)
|
|
{
|
|
m_HelpArrowShowing = value;
|
|
Check_Object (hudHelpArrow);
|
|
if (!m_isShown)
|
|
hudHelpArrow->Hide ();
|
|
if (value)
|
|
hudHelpArrow->Show ();
|
|
else
|
|
hudHelpArrow->Hide ();
|
|
}
|
|
|
|
void MWGUIManager::ShowTimer (bool value)
|
|
{
|
|
m_TimerShowing = value;
|
|
Check_Object (hudTimer);
|
|
if (!m_isShown)
|
|
hudTimer->Hide ();
|
|
if (value)
|
|
hudTimer->Show ();
|
|
else
|
|
hudTimer->Hide ();
|
|
}
|
|
|
|
void MWGUIManager::ShowDebug (bool value)
|
|
{
|
|
m_DebugShowing = value;
|
|
Check_Object (hudTimer);
|
|
if (value)
|
|
hudDebug->Show ();
|
|
else
|
|
hudDebug->Hide ();
|
|
}
|
|
|
|
void MWGUIManager::ShowZoom (bool value)
|
|
{
|
|
m_ZoomVisible = value;
|
|
Check_Object (hudZoom);
|
|
if (!m_isShown)
|
|
hudZoom->Hide ();
|
|
if (value)
|
|
{
|
|
// MSL 5.02
|
|
if (m_LightAmpShowing)
|
|
lightAmp->Hide();
|
|
// zoomLightAmp->Show ();
|
|
hudZoom->Show ();
|
|
}
|
|
else
|
|
{
|
|
// zoomLightAmp->Hide ();
|
|
hudZoom->Hide ();
|
|
}
|
|
}
|
|
|
|
void MWGUIManager::ShowMap (bool value)
|
|
{
|
|
m_MapShowing = value;
|
|
Check_Object (hudMap);
|
|
Check_Object (radarManager);
|
|
if ((m_isShown == HIDE_ALL) || (m_isShown == SHOW_RETICLE))
|
|
{
|
|
hudMap->Hide();
|
|
radarManager->Hide ();
|
|
hudHeat->Hide ();
|
|
hudSpeed->Hide ();
|
|
}
|
|
else if (value)
|
|
{
|
|
hudMap->Show ();
|
|
radarManager->Hide ();
|
|
hudHeat->Hide ();
|
|
hudSpeed->Hide ();
|
|
}
|
|
else
|
|
{
|
|
hudMap->Hide ();
|
|
radarManager->Show ();
|
|
hudHeat->Show ();
|
|
hudSpeed->Show ();
|
|
}
|
|
}
|
|
|
|
void MWGUIManager::SetZoomDisplayLevel (int level)
|
|
{
|
|
Check_Object (hudZoom);
|
|
hudZoom->SetZoomLevel(level);
|
|
}
|
|
|
|
void MWGUIManager::MPName (const char *name)
|
|
{
|
|
Str_Copy (gametype,name,256);
|
|
if (hudScore)
|
|
hudScore->GameType (gametype);
|
|
}
|
|
|
|
void MWGUIManager::MPTimeLeft (Stuff::Time value)
|
|
{
|
|
if (hudScore)
|
|
hudScore->TimeLeft (value);
|
|
}
|
|
|
|
// MSL 5.03 Ammo Bay Fire Indicator
|
|
void MWGUIManager::ShowFIRE (bool value)
|
|
{
|
|
if (hudmp)
|
|
hudmp->ShowFIRE (value);
|
|
}
|
|
|
|
// MSL 5.03 Jam Indicator
|
|
void MWGUIManager::ShowJAM (bool value)
|
|
{
|
|
if (hudmp)
|
|
hudmp->ShowJAM (value);
|
|
}
|
|
|
|
void MWGUIManager::ShowFlag (bool value)
|
|
{
|
|
if (hudmp)
|
|
hudmp->ShowFlag (value);
|
|
}
|
|
|
|
void MWGUIManager::ShowKOTF (bool value)
|
|
{
|
|
if (hudmp)
|
|
hudmp->ShowKOTF (value);
|
|
}
|
|
|
|
void MWGUIManager::ShowHudComponent (HUDELEMENTS which)
|
|
{
|
|
switch (which)
|
|
{
|
|
case HUD_NAV:
|
|
hudnav->Show ();
|
|
break;
|
|
case HUD_TARGETARROW:
|
|
hudTargetArrow->Show ();
|
|
break;
|
|
case HUD_TORSOBAR:
|
|
hudTorsoBar->Show ();
|
|
break;
|
|
case HUD_ZOOM:
|
|
hudZoom->Show ();
|
|
break;
|
|
case HUD_HEAT:
|
|
hudHeat->Show ();
|
|
break;
|
|
case HUD_COOLANT:
|
|
hudCoolant->Show ();
|
|
break;
|
|
case HUD_JUMP:
|
|
hudJump->Show ();
|
|
break;
|
|
case HUD_SPEED:
|
|
hudSpeed->Show ();
|
|
break;
|
|
case HUD_DAMAGE:
|
|
hudDamage->Show ();
|
|
break;
|
|
case HUD_TARGETDAMAGE:
|
|
hudTargetDamage->Show ();
|
|
break;
|
|
case HUD_WEAPON:
|
|
hudWeapon->Show ();
|
|
break;
|
|
case HUD_RETICLE:
|
|
hudReticle->Show ();
|
|
break;
|
|
case HUD_RADAR:
|
|
radarManager->Show ();
|
|
break;
|
|
case HUD_CHAT:
|
|
hudChat->Show ();
|
|
break;
|
|
case HUD_COMM:
|
|
hudComm->Show ();
|
|
break;
|
|
case HUD_HELP:
|
|
hudHelp->Show ();
|
|
break;
|
|
case HUD_MAP:
|
|
hudMap->Show ();
|
|
break;
|
|
case HUD_OBJECTIVE:
|
|
hudObjective->Show ();
|
|
break;
|
|
case HUD_SCORE:
|
|
hudScore->Show ();
|
|
break;
|
|
case HUD_TIMER:
|
|
hudTimer->Show ();
|
|
break;
|
|
case HUD_HELPARROW:
|
|
hudHelpArrow->Show ();
|
|
break;
|
|
case HUD_DEBUG:
|
|
hudDebug->Show ();
|
|
break;
|
|
case HUD_MP:
|
|
hudmp->Show ();
|
|
break;
|
|
case HUD_CAMERA:
|
|
hudCamera->Show ();
|
|
break;
|
|
}
|
|
}
|
|
|
|
void MWGUIManager::HideHudComponent (HUDELEMENTS which)
|
|
{
|
|
switch (which)
|
|
{
|
|
case HUD_NAV:
|
|
hudnav->Hide ();
|
|
break;
|
|
case HUD_TARGETARROW:
|
|
hudTargetArrow->Hide ();
|
|
break;
|
|
case HUD_TORSOBAR:
|
|
hudTorsoBar->Hide ();
|
|
break;
|
|
case HUD_ZOOM:
|
|
hudZoom->Hide ();
|
|
break;
|
|
case HUD_HEAT:
|
|
hudHeat->Hide ();
|
|
break;
|
|
case HUD_COOLANT:
|
|
hudCoolant->Hide ();
|
|
break;
|
|
case HUD_JUMP:
|
|
hudJump->Hide ();
|
|
break;
|
|
case HUD_SPEED:
|
|
hudSpeed->Hide ();
|
|
break;
|
|
case HUD_DAMAGE:
|
|
hudDamage->Hide ();
|
|
break;
|
|
case HUD_TARGETDAMAGE:
|
|
hudTargetDamage->Hide ();
|
|
break;
|
|
case HUD_WEAPON:
|
|
hudWeapon->Hide ();
|
|
break;
|
|
case HUD_RETICLE:
|
|
hudReticle->Hide ();
|
|
break;
|
|
case HUD_RADAR:
|
|
radarManager->Hide ();
|
|
break;
|
|
case HUD_CHAT:
|
|
hudChat->Hide ();
|
|
break;
|
|
case HUD_COMM:
|
|
hudComm->Hide ();
|
|
break;
|
|
case HUD_HELP:
|
|
hudHelp->Hide ();
|
|
break;
|
|
case HUD_MAP:
|
|
hudMap->Hide ();
|
|
break;
|
|
case HUD_OBJECTIVE:
|
|
hudObjective->Hide ();
|
|
break;
|
|
case HUD_SCORE:
|
|
hudScore->Hide ();
|
|
break;
|
|
case HUD_TIMER:
|
|
hudTimer->Hide ();
|
|
break;
|
|
case HUD_HELPARROW:
|
|
hudHelpArrow->Hide ();
|
|
break;
|
|
case HUD_DEBUG:
|
|
hudDebug->Hide ();
|
|
break;
|
|
case HUD_MP:
|
|
hudmp->Hide ();
|
|
break;
|
|
case HUD_CAMERA:
|
|
hudCamera->Hide ();
|
|
break;
|
|
}
|
|
}
|
|
|
|
bool MWGUIManager::HudComponentVisible (HUDELEMENTS which)
|
|
{
|
|
HUDComponent* component = Component(which);
|
|
|
|
if ((component != 0) &&
|
|
(component->Visible() == true))
|
|
{
|
|
return (true);
|
|
}
|
|
|
|
return (false);
|
|
}
|
|
|
|
HUDComponent *MWGUIManager::Component (HUDELEMENTS which)
|
|
{
|
|
switch (which)
|
|
{
|
|
case HUD_NAV:
|
|
return hudnav;
|
|
break;
|
|
case HUD_TARGETARROW:
|
|
return hudTargetArrow;
|
|
break;
|
|
case HUD_TORSOBAR:
|
|
return hudTorsoBar;
|
|
break;
|
|
case HUD_ZOOM:
|
|
return hudZoom;
|
|
break;
|
|
case HUD_HEAT:
|
|
return hudHeat;
|
|
break;
|
|
case HUD_COOLANT:
|
|
return hudCoolant;
|
|
break;
|
|
case HUD_JUMP:
|
|
return hudJump;
|
|
break;
|
|
case HUD_SPEED:
|
|
return hudSpeed;
|
|
break;
|
|
case HUD_DAMAGE:
|
|
return hudDamage;
|
|
break;
|
|
case HUD_TARGETDAMAGE:
|
|
return hudTargetDamage;
|
|
break;
|
|
case HUD_WEAPON:
|
|
return hudWeapon;
|
|
break;
|
|
case HUD_RETICLE:
|
|
return hudReticle;
|
|
break;
|
|
case HUD_RADAR:
|
|
return radarManager;
|
|
break;
|
|
case HUD_CHAT:
|
|
return hudChat;
|
|
break;
|
|
case HUD_COMM:
|
|
return hudComm;
|
|
break;
|
|
case HUD_HELP:
|
|
return hudHelp;
|
|
break;
|
|
case HUD_MAP:
|
|
return hudMap;
|
|
break;
|
|
case HUD_OBJECTIVE:
|
|
return hudObjective;
|
|
break;
|
|
case HUD_SCORE:
|
|
return hudScore;
|
|
break;
|
|
case HUD_TIMER:
|
|
return hudTimer;
|
|
break;
|
|
case HUD_HELPARROW:
|
|
return hudHelpArrow;
|
|
break;
|
|
case HUD_DEBUG:
|
|
return hudDebug;
|
|
break;
|
|
case HUD_MP:
|
|
return hudmp;
|
|
break;
|
|
case HUD_CAMERA:
|
|
return hudCamera;
|
|
break;
|
|
default:
|
|
STOP (("bad value passed into MWGUIManager::Component"));
|
|
break;
|
|
}
|
|
return NULL;
|
|
}
|
|
|