Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
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.
2026-06-24 21:28:16 -05:00

130 lines
3.2 KiB
C++

#pragma once
#include "MW4.hpp"
#include "Sensor.hpp"
#include "hudcomp.hpp"
#include "weapon.hpp"
namespace MechWarrior4
{
const int MAX_HUD_DAMAGE_ZONE = 11;
const int MAX_HUD_DAMAGE_LEVEL = 6;
class HUDDamage : public HUDComponent
{
protected:
typedef HUDComponent inherited;
int m_DamageValues[MAX_HUD_DAMAGE_ZONE+1];
Scalar m_ArmorValues[MAX_HUD_DAMAGE_ZONE+1];
DWORD m_DamageColors[MAX_HUD_DAMAGE_LEVEL];
HUDText *m_RearText;
Stuff::Time m_DamageFlashTime,m_HitFlashTime;
bool m_DamageFlash;
int m_HitFlashCount[MAX_HUD_DAMAGE_ZONE+1];
int m_MechID;
bool m_ArmorMode;
void DrawImplementation(void);
public:
HUDDamage();
~HUDDamage();
virtual void Update (Stuff::Time till);
virtual void Reset (void);
void SetVehicle(Vehicle *vehicle);
void DamageValue (int values[MAX_HUD_DAMAGE_ZONE+1]);
void ArmorValue (Scalar values[MAX_HUD_DAMAGE_ZONE+1],bool firstpass);
void ToggleMode (void)
{ m_ArmorMode = !m_ArmorMode;
VehicleInterface::GetInstance()->hudDamageMode = m_ArmorMode;
}
};
class HUDTargetDamage : public HUDComponent
{
protected:
struct WeaponData {
int m_TextureID;
int m_PartLoc;
WeaponData (int p1,int p3)
{
m_TextureID = p1;
m_PartLoc = p3;
}
};
typedef HUDComponent inherited;
void DrawImplementation(void);
bool m_ArmorMode;
Stuff::SlotOf <Entity *> m_TargetVehicle;
stlport::vector<WeaponData> m_Weapons;
HUDText *m_TargetName;
HUDText *m_TargetRangeText;
int m_TargetAlignment;
Stuff::Scalar m_TargetTonnage;
int m_DamageValues[MAX_HUD_DAMAGE_ZONE+1];
Scalar m_ArmorValues[MAX_HUD_DAMAGE_ZONE+1];
DWORD m_DamageColors[MAX_HUD_DAMAGE_LEVEL];
Stuff::Time m_DamageFlashTime,m_HitFlashTime;
bool m_DamageFlash;
int m_HitFlashCount[MAX_HUD_DAMAGE_ZONE+1];
int m_TargetMechID;
bool m_ShowData;
bool m_LastMechMode;
//상훈 앞
public:
char hsh_targetname[64];
char hsh_targetrange[64];
//상훈 뒤
public:
HUDTargetDamage();
~HUDTargetDamage();
virtual void Update (Stuff::Time till);
virtual void Reset (void);
// void DamageValue (int values[MAX_HUD_DAMAGE_ZONE]);
// void ArmorValue (Scalar values[MAX_HUD_DAMAGE_ZONE],bool firstpass);
bool ToggleMode (void);
bool ShowCamera (void)
{ return ((!m_ArmorMode) && m_Visible); }
void Target (Entity *veh);
void TargetName (char *name)
{
m_TargetName->UpdateText (name);
//상훈 앞
strncpy(hsh_targetname,name,sizeof(hsh_targetname));
hsh_targetname[sizeof(hsh_targetname)-1]=0;
//상훈 뒤
}
void TargetRange (Stuff::Scalar value)
{
char text[50];
int temp = (int) value;
sprintf (text,"%dm",temp);
m_TargetRangeText->UpdateText (text);
//상훈 앞
strncpy(hsh_targetrange,text,sizeof(hsh_targetrange));
hsh_targetrange[sizeof(hsh_targetrange)-1]=0;
//상훈 뒤
}
void TargetTonnage (Stuff::Scalar value);
void TargetAlignment (int value)
{ m_TargetAlignment = value; }
void ReticuleTarget (Entity *veh)
{
if (veh && !m_ShowData)
{
if (veh == m_TargetVehicle.GetCurrent ())
m_ShowData = true;
}
}
};
}