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.
130 lines
2.9 KiB
C++
130 lines
2.9 KiB
C++
|
|
#pragma once
|
|
|
|
#include "MW4.hpp"
|
|
#include "Sensor.hpp"
|
|
#include "hudcomp.hpp"
|
|
|
|
namespace MechWarrior4
|
|
{
|
|
|
|
class HUDWeapon;
|
|
class HUDReticle : public HUDComponent
|
|
{
|
|
protected:
|
|
|
|
typedef HUDComponent inherited;
|
|
|
|
void DrawImplementation(void);
|
|
|
|
Stuff::Time m_RotateTime;
|
|
Stuff::Scalar zrot;
|
|
DWORD m_LockColor2[3];
|
|
int m_ReticleAlignment;
|
|
Stuff::Scalar scalexy;
|
|
int targeting;
|
|
Stuff::Scalar rotclockwise;
|
|
Stuff::Scalar rotcounterclock;
|
|
int isReticleLocked;
|
|
int isReticleLockedLRM;
|
|
int isReticleLockedMRM;
|
|
int isReticleLockedSRM;
|
|
int isReticleLockedSSRM;
|
|
HUDText *m_ReticleRangeText,*m_ReticleName,*m_isReticleLockedLRMText,*m_isReticleLockedMRMText,*m_isReticleLockedSRMText,*m_isReticleLockedSSRMText;
|
|
Stuff::Scalar m_ReticleRange;
|
|
HUDWeapon *m_Weapons;
|
|
Stuff::Time m_HitTime;
|
|
DWORD m_LeftHitColor,m_RightHitColor,m_ForwardHitColor,m_RearHitColor;
|
|
DWORD m_LeftCenterColor,m_RightCenterColor,m_ForwardCenterColor,m_RearCenterColor;
|
|
|
|
DWORD m_LockAlpha,m_AnimLockColor,m_AnimLockColorLRM,m_AnimLockColorSRM;
|
|
|
|
void AdjustColor (DWORD& color,DWORD alpha);
|
|
|
|
public:
|
|
HUDReticle();
|
|
~HUDReticle();
|
|
virtual void Update (Stuff::Time till);
|
|
virtual void Reset (void);
|
|
|
|
void ReticleAlignment (int value)
|
|
{ Verify (value>=0 && value<=2); m_ReticleAlignment = value; }
|
|
void ReticleRange (Stuff::Scalar value)
|
|
{
|
|
char text[50];
|
|
int temp = (int) value;
|
|
sprintf (text,"%dm",temp);
|
|
m_ReticleRangeText->UpdateText (text);
|
|
m_ReticleRange = value;
|
|
}
|
|
// MSL 5.02 SubSystems
|
|
Stuff::Scalar GetReticleRange (void)
|
|
{
|
|
return m_ReticleRange;
|
|
}
|
|
void ReticleName (char *name)
|
|
{ m_ReticleName->UpdateText (name); }
|
|
|
|
void LeftHit (void);
|
|
void RightHit (void);
|
|
void ForwardHit (void);
|
|
void RearHit (void);
|
|
void AllHit (void);
|
|
|
|
void Targeting (int value)
|
|
{ targeting = value; }
|
|
void IsReticleLocked (int value)
|
|
{
|
|
if (value && !isReticleLocked)
|
|
{
|
|
targeting = true;
|
|
m_LockAlpha = 100;
|
|
scalexy = 6.0f;
|
|
}
|
|
isReticleLocked = value;
|
|
}
|
|
void IsReticleLockedLRM (int value)
|
|
{
|
|
if (value && !isReticleLockedLRM)
|
|
{
|
|
targeting = true;
|
|
m_LockAlpha = 100;
|
|
scalexy = 6.0f;
|
|
}
|
|
isReticleLockedLRM = value;
|
|
}
|
|
void IsReticleLockedMRM (int value)
|
|
{
|
|
if (value && !isReticleLockedMRM)
|
|
{
|
|
targeting = true;
|
|
m_LockAlpha = 100;
|
|
scalexy = 6.0f;
|
|
}
|
|
isReticleLockedMRM = value;
|
|
}
|
|
void IsReticleLockedSRM (int value)
|
|
{
|
|
if (value && !isReticleLockedSRM)
|
|
{
|
|
targeting = true;
|
|
m_LockAlpha = 100;
|
|
scalexy = 6.0f;
|
|
}
|
|
isReticleLockedSRM = value;
|
|
}
|
|
void IsReticleLockedSSRM (int value)
|
|
{
|
|
if (value && !isReticleLockedSSRM)
|
|
{
|
|
targeting = true;
|
|
m_LockAlpha = 100;
|
|
scalexy = 6.0f;
|
|
}
|
|
isReticleLockedSSRM = value;
|
|
}
|
|
};
|
|
|
|
}
|
|
|