Skip to content

Instantly share code, notes, and snippets.

@marrub--
Created January 27, 2017 00:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marrub--/872c062a5bc57df4707f630cf0d8efa3 to your computer and use it in GitHub Desktop.
Save marrub--/872c062a5bc57df4707f630cf0d8efa3 to your computer and use it in GitHub Desktop.
#include "lith_upgrades_common.h"
#define UserData upgr->UserData_VitalScan
//----------------------------------------------------------------------------
// Extern Functions
//
//
// Update
//
[[__call("ScriptS")]]
void Upgr_VitalScan_Update(player_t *p, upgrade_t *upgr)
{
ACS_SetActivator(0, AAPTR_PLAYER_GETTARGET);
if((UserData.target = ACS_CheckFlag(0, "COUNTKILL")))
{
UserData.tagstr = ACS_GetActorPropertyString(0, APROP_NameTag);
UserData.health = ACS_GetActorProperty(0, APROP_Health);
UserData.maxhealth = ACS_GetActorProperty(0, APROP_SpawnHealth);
UserData.angle = atan2f(p->y - ACS_GetActorY(0), p->x - ACS_GetActorX(0));
}
}
//
// Render
//
void Upgr_VitalScan_Render(player_t *p, upgrade_t *upgr)
{
if(!p->upgrades[UPGR_HeadsUpDisp].active || !UserData.target) return;
int ofs = 0;
if(1)
{
float a = p->yawf; // p->yawf = p->yaw * tau - pi; // p->yaw = ACS_GetActorAngle(0);
float b = UserData.angle;
float phi = fmod(fabs(a - b), 1);
float dst = phi > pi ? tau - phi : phi;
int sign = (a - b >= 0 && a - b <= pi) || (a - b <= -pi && a - b >= -tau) ? 1 : -1;
ofs = (dst * sign) * 64;
HudMessageF("SMALLFONT", "phi: %.1k\na: %.1k\nb: %.1k\ndst: %.1k\nsign: %i", (fixed)phi, (fixed)a, (fixed)b, (fixed)dst, sign);
HudMessagePlain(hid_test1, 0.1, 0.1, TICSECOND);
}
HudMessageF("CBIFONT", "%S\n%i/%i", UserData.tagstr, UserData.health, UserData.maxhealth);
HudMessageParams(HUDMSG_FADEOUT, hid_vitalscanner, CR_WHITE, 160.4 + ofs, 180.2, 0.1, 0.4);
}
// EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment