summaryrefslogtreecommitdiff
path: root/src/fpsgame
diff options
context:
space:
mode:
authorxolatile2025-07-22 13:10:23 +0200
committerxolatile2025-07-22 13:10:23 +0200
commit8a63f20c61e4b9a3a4c39f566a45e87be50e9124 (patch)
tree3fea680171d536ac0ee86f66f66372eb566cbcaf /src/fpsgame
parent975941e8f3262e5fcb26c0436a8706353c25ebca (diff)
downloadxolatile-badassbug-8a63f20c61e4b9a3a4c39f566a45e87be50e9124.tar.xz
xolatile-badassbug-8a63f20c61e4b9a3a4c39f566a45e87be50e9124.tar.zst
Simple frag messages and TODO...
Diffstat (limited to 'src/fpsgame')
-rw-r--r--src/fpsgame/fps.cpp49
1 files changed, 44 insertions, 5 deletions
diff --git a/src/fpsgame/fps.cpp b/src/fpsgame/fps.cpp
index 35a5d65..2f2986e 100644
--- a/src/fpsgame/fps.cpp
+++ b/src/fpsgame/fps.cpp
@@ -431,6 +431,21 @@ namespace game
VARP(teamcolorfrags, 0, 1, 1);
+ /// xolatile: HUD frag messages
+
+#define fragmessageduration (2000)
+
+ string hudfragger, hudfragged;
+ int hudfraggun, hudfragmillis;
+
+ void sethudfragdata(char *fragger, char *fragged, int gunid)
+ {
+ copystring(hudfragger, fragger ? fragger : "");
+ copystring(hudfragged, fragged);
+ hudfraggun = gunid;
+ hudfragmillis = lastmillis;
+ }
+
void killed(fpsent *d, fpsent *actor)
{
if(d->state==CS_EDITING)
@@ -470,11 +485,19 @@ namespace game
}
else
{
- if(d==player1) conoutf(contype, "\f2%s got fragged by %s", dname, aname);
- else conoutf(contype, "\f2%s fragged %s", aname, dname);
+ if(d==player1)
+ {
+ conoutf(contype, "\f2%s got fragged by %s", dname, aname);
+ sethudfragdata(actor->name, d->name, actor->gunselect);
+ }
+ else
+ {
+ conoutf(contype, "\f2%s fragged %s", aname, dname);
+ sethudfragdata(actor->name, d->name, actor->gunselect);
+ }
}
deathstate(d);
- ai::killed(d, actor);
+ ai::killed(d, actor);
}
void timeupdate(int secs)
@@ -1039,8 +1062,24 @@ namespace game
if(!m_edit)
{
- if(gameclock) drawgameclock(w, h);
- if(hudscore) drawhudscore(w, h);
+ if(gameclock) drawgameclock(w, h);
+ if(hudscore) drawhudscore(w, h);
+ }
+
+ /// Frag message.
+
+ if(hudfragmillis+fragmessageduration > lastmillis)
+ {
+ vec2 center = vec2(0.5*w, 0.2*h);
+ float width = 0, height = 0;
+ pushhudmatrix();
+ hudmatrix.scale(0.8, 0.8, 1);
+ flushhudmatrix();
+ draw_textf("%s", center.x, center.y, hudfragger);
+ text_boundsf(hudfragger, width, height);
+ drawicon(HICON_FIST+hudfraggun, center.x+width, center.y, height);
+ draw_textf("%s", center.x+width+height, center.y, hudfragged);
+ pophudmatrix();
}
}