Portable Half-Life SDK. GoldSource and Xash3D. Crossplatform.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
3.8 KiB

//++ BulliT
#include "hud.h"
#include "cl_util.h"
#include <string.h>
#include <stdio.h>
#include "parsemsg.h"
#include "agglobal.h"
#include "aghudsettings.h"
DECLARE_MESSAGE(m_Settings, Settings )
extern cvar_t* g_phud_settings;
int g_iMatch = 0;
int AgHudSettings::Init(void)
{
HOOK_MESSAGE( Settings );
g_iMatch = 0;
m_szGamemode[0] = '\0';
m_iTimeLimit = 0;
m_iFragLimit = 0;
m_iFriendlyFire = 0;
m_iWeaponstay = 0;
m_szVersion[0] = '\0';
m_szWallgauss[0] = '\0';
m_szHeadShot[0] = '\0';
m_szBlastRadius[0] = '\0';
m_flTurnoff = 0.0;
m_iFlags = 0;
gHUD.AddHudElem(this);
return 1;
};
int AgHudSettings::VidInit(void)
{
return 1;
};
void AgHudSettings::Reset(void)
{
m_iFlags &= ~HUD_ACTIVE;
m_flTurnoff = 0;
}
int AgHudSettings::Draw(float fTime)
{
if (0 == g_phud_settings->value || m_flTurnoff < gHUD.m_flTime)
{
Reset();
return 1;
}
char szText[128];
szText[0] = '\0';
int r, g, b;
UnpackRGB(r,g,b, RGB_YELLOWISH);
int x = 10;
int y = 10;
sprintf(szText,"Adrenaline Gamer Mod %s",m_szVersion);
gHUD.DrawHudString(ScreenWidth/20 , gHUD.m_scrinfo.iCharHeight, ScreenWidth,szText,r,g,b);
gHUD.DrawHudString(ScreenWidth/20 , gHUD.m_scrinfo.iCharHeight*2, ScreenWidth,"www.planethalflife.com/agmod",r,g,b);
gHUD.DrawHudString(ScreenWidth/20 , gHUD.m_scrinfo.iCharHeight*3, ScreenWidth,"Martin Webrant",r,g,b);
x = ScreenWidth - (ScreenWidth / 5);
sprintf(szText,"%s",m_szGamemode);
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight*2;
sprintf(szText,"Time limit: %d",m_iTimeLimit);
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
sprintf(szText,"Frag limit: %d",m_iFragLimit);
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
sprintf(szText,"Friendly fire: %s",m_iFriendlyFire ? "On" : "Off");
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
sprintf(szText,"Weaponstay: %s",m_iWeaponstay ? "On" : "Off");
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
if (strlen(m_szWallgauss))
{
sprintf(szText,"Wallgauss: %sX (1)",m_szWallgauss);
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
}
if (strlen(m_szHeadShot))
{
sprintf(szText,"Headshot: %sX (3)",m_szHeadShot);
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
}
if (strlen(m_szBlastRadius))
{
sprintf(szText,"BlastRadius: %sX (1)",m_szBlastRadius);
gHUD.DrawHudString(x, y,ScreenWidth,szText,r,g,b);
y += gHUD.m_scrinfo.iCharHeight;
}
if (g_iMatch)
{
strcpy(szText,"Match is on!");
AgDrawHudStringCentered(ScreenWidth / 2, gHUD.m_scrinfo.iCharHeight*2,ScreenWidth,szText,r,g,b);
}
AgDrawHudStringCentered(ScreenWidth / 2 , gHUD.m_scrinfo.iCharHeight*3, ScreenWidth,AgMapname().c_str(),r,g,b);
return 0;
}
int AgHudSettings::MsgFunc_Settings(const char *pszName, int iSize, void *pbuf)
{
BEGIN_READ( pbuf, iSize );
g_iMatch = READ_BYTE();
strcpy(m_szGamemode,READ_STRING());
m_iTimeLimit = READ_BYTE();
m_iFragLimit = READ_BYTE();
m_iFriendlyFire = READ_BYTE();
m_iWeaponstay = READ_BYTE();
strcpy(m_szVersion,READ_STRING());
strcpy(m_szWallgauss,READ_STRING());
strcpy(m_szHeadShot,READ_STRING());
strcpy(m_szBlastRadius,READ_STRING());
if (0 == strcmp(m_szWallgauss,"1"))
m_szWallgauss[0] = '\0';
if (0 == strcmp(m_szHeadShot,"3"))
m_szHeadShot[0] = '\0';
if (0 == strcmp(m_szBlastRadius,"1"))
m_szBlastRadius[0] = '\0';
if (0 == g_phud_settings->value)
m_iFlags &= ~HUD_ACTIVE;
else
m_iFlags |= HUD_ACTIVE;
m_flTurnoff = gHUD.m_flTime + 10;
return 1;
}
bool AgIsMatch()
{
return 1 == g_iMatch;
}
//-- Martin Webrant