]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/waypoints/waypointsprites.qh
powerups_dropondeath: Added dropped waypoint
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / waypoints / waypointsprites.qh
1 #pragma once
2
3 #include "all.qh"
4
5 /** Additional networked waypoint state, used for items, weapons, buffs */
6 .int wp_extra;
7 .int wp_reverse;
8
9 const int SPRITERULE_DEFAULT = 0;
10 const int SPRITERULE_TEAMPLAY = 1;
11 const int SPRITERULE_SPECTATOR = 2;
12
13 #ifdef CSQC
14 entityclass(WaypointSprite);
15 classfield(WaypointSprite) .float helpme;
16 classfield(WaypointSprite) .float rule;
17 classfield(WaypointSprite) .string netname; // primary picture
18 classfield(WaypointSprite) .string netname2; // secondary picture
19 classfield(WaypointSprite) .string netname3; // tertiary picture
20 classfield(WaypointSprite) .int team; // team that gets netname2
21 classfield(WaypointSprite) .float lifetime;
22 classfield(WaypointSprite) .float fadetime;
23 classfield(WaypointSprite) .float maxdistance;
24 classfield(WaypointSprite) .int hideflags;
25 classfield(WaypointSprite) .float spawntime;
26 classfield(WaypointSprite) .float health;
27 classfield(WaypointSprite) .float build_started;
28 classfield(WaypointSprite) .float build_starthealth;
29 classfield(WaypointSprite) .float build_finished;
30 classfield(WaypointSprite) .int build_reverse;
31
32 bool autocvar_cl_hidewaypoints;
33
34 float autocvar_g_waypointsprite_alpha;
35 float autocvar_g_waypointsprite_crosshairfadealpha;
36 float autocvar_g_waypointsprite_crosshairfadedistance;
37 float autocvar_g_waypointsprite_crosshairfadescale;
38 float autocvar_g_waypointsprite_distancealphaexponent;
39 float autocvar_g_waypointsprite_distancefadealpha;
40 float autocvar_g_waypointsprite_distancefadedistancemultiplier;
41 float autocvar_g_waypointsprite_distancefadescale;
42 float autocvar_g_waypointsprite_edgefadealpha;
43 float autocvar_g_waypointsprite_edgefadedistance;
44 float autocvar_g_waypointsprite_edgefadescale;
45 float autocvar_g_waypointsprite_edgeoffset_bottom;
46 float autocvar_g_waypointsprite_edgeoffset_left;
47 float autocvar_g_waypointsprite_edgeoffset_right;
48 float autocvar_g_waypointsprite_edgeoffset_top;
49 float autocvar_g_waypointsprite_fontsize;
50 int autocvar_g_waypointsprite_itemstime;
51 float autocvar_g_waypointsprite_minalpha;
52 float autocvar_g_waypointsprite_minscale;
53 float autocvar_g_waypointsprite_normdistance;
54 float autocvar_g_waypointsprite_scale;
55 int autocvar_g_waypointsprite_spam;
56 float autocvar_g_waypointsprite_timealphaexponent;
57 bool autocvar_g_waypointsprite_turrets = true;
58 float autocvar_g_waypointsprite_turrets_maxdist = 5000;
59 bool autocvar_g_waypointsprite_turrets_text = false;
60 bool autocvar_g_waypointsprite_turrets_onlyhurt = false;
61 bool autocvar_g_waypointsprite_uppercase;
62 bool autocvar_g_waypointsprite_text;
63 float autocvar_g_waypointsprite_iconsize = 32;
64 bool autocvar_g_waypointsprite_iconcolor;
65
66 float waypointsprite_fadedistance;
67 float waypointsprite_normdistance;
68 float waypointsprite_minscale;
69 float waypointsprite_minalpha;
70 float waypointsprite_distancealphaexponent;
71 float waypointsprite_timealphaexponent;
72 float waypointsprite_scale;
73 float waypointsprite_fontsize;
74 float waypointsprite_edgefadealpha;
75 float waypointsprite_edgefadescale;
76 float waypointsprite_edgefadedistance;
77 float waypointsprite_edgeoffset_bottom;
78 float waypointsprite_edgeoffset_left;
79 float waypointsprite_edgeoffset_right;
80 float waypointsprite_edgeoffset_top;
81 float waypointsprite_crosshairfadealpha;
82 float waypointsprite_crosshairfadescale;
83 float waypointsprite_crosshairfadedistance;
84 float waypointsprite_distancefadealpha;
85 float waypointsprite_distancefadescale;
86 float waypointsprite_distancefadedistance;
87 float waypointsprite_alpha;
88
89 const float SPRITE_HEALTHBAR_WIDTH = 104;
90 const float SPRITE_HEALTHBAR_HEIGHT = 7;
91 const float SPRITE_HEALTHBAR_MARGIN = 6;
92 const float SPRITE_HEALTHBAR_BORDER = 2;
93 const float SPRITE_HEALTHBAR_BORDERALPHA = 1;
94 const float SPRITE_HEALTHBAR_HEALTHALPHA = 0.5;
95 const float SPRITE_ARROW_SCALE = 1.0;
96 const float SPRITE_HELPME_BLINK = 2;
97
98 float waypointsprite_count, waypointsprite_newcount;
99
100 void drawrotpic(vector org, float rot, string pic, vector sz, vector hotspot, vector rgb, float a, float f);
101
102 void drawquad(vector o, vector ri, vector up, string pic, vector rgb, float a, float f);
103
104 void drawhealthbar(vector org, float rot, float h, vector sz, vector hotspot, float width, float height, float margin, float border, float align, vector rgb, float a, vector hrgb, float ha, float f);
105
106 // returns location of sprite text
107 vector drawspritearrow(vector o, float ang, vector rgb, float a, float t);
108
109 // returns location of sprite healthbar
110 vector drawsprite_TextOrIcon(bool is_text, vector o, float ang, float minwidth, vector rgb, float a, vector sz, string str);
111
112 float spritelookupblinkvalue(entity this, string s);
113 vector spritelookupcolor(entity this, string s, vector def);
114 string spritelookuptext(entity this, string s);
115
116 vector fixrgbexcess_move(vector rgb, vector src, vector dst);
117 vector fixrgbexcess(vector rgb);
118
119 // they are drawn using a .draw function
120
121 void Ent_RemoveWaypointSprite(entity this);
122
123 void Ent_WaypointSprite(entity this, bool isnew);
124
125 void WaypointSprite_Load_Frames(string ext);
126
127 void WaypointSprite_Load();
128 .float alpha;
129 void Draw_WaypointSprite(entity this);
130 #endif
131
132 #ifdef SVQC
133 .entity sprite;
134
135 float autocvar_sv_waypointsprite_deadlifetime;
136 float autocvar_sv_waypointsprite_deployed_lifetime;
137 float autocvar_sv_waypointsprite_limitedrange;
138
139 ..entity owned_by_field;
140 .float rule;
141 .string model1;
142 .string model2;
143 .string model3;
144
145 .bool(entity, entity, entity) waypointsprite_visible_for_player;
146
147 void WaypointSprite_UpdateSprites(entity e, entity m1, entity m2, entity m3);
148
149 void WaypointSprite_UpdateHealth(entity e, float f);
150
151 void WaypointSprite_UpdateMaxHealth(entity e, float f);
152
153 void WaypointSprite_UpdateBuildFinished(entity e, float f);
154
155 void WaypointSprite_UpdateOrigin(entity e, vector o);
156
157 void WaypointSprite_UpdateRule(entity e, float t, float r);
158
159 void WaypointSprite_UpdateTeamRadar(entity e, entity icon, vector col);
160
161 .float waypointsprite_pingtime;
162 .float waypointsprite_helpmetime;
163 void WaypointSprite_Ping(entity e);
164
165 float waypointsprite_limitedrange, waypointsprite_deployed_lifetime, waypointsprite_deadlifetime;
166
167 void WaypointSprite_HelpMePing(entity e);
168
169 void WaypointSprite_FadeOutIn(entity e, float t);
170
171 void WaypointSprite_Init();
172
173 void WaypointSprite_Kill(entity wp);
174
175 void WaypointSprite_Disown(entity wp, float fadetime);
176
177 void WaypointSprite_Think(entity this);
178
179 bool WaypointSprite_visible_for_player(entity this, entity player, entity view);
180
181 entity WaypointSprite_getviewentity(entity e);
182
183 float WaypointSprite_isteammate(entity e, entity e2);
184
185 bool WaypointSprite_Customize(entity this, entity client);
186
187 bool WaypointSprite_SendEntity(entity this, entity to, float sendflags);
188
189 void WaypointSprite_Reset(entity this);
190
191 entity WaypointSprite_Spawn(
192     entity spr, // sprite
193     float lifetime, float maxdistance, // lifetime, max distance
194     entity ref, vector ofs, // position
195     entity showto, float t, // show to whom? Use a flag to indicate a team
196     entity own, .entity ownfield, // remove when own gets killed
197     float hideable, // true when it should be controlled by cl_hidewaypoints
198     entity icon // initial icon
199 );
200
201 entity WaypointSprite_SpawnFixed(
202     entity spr,
203     vector ofs,
204     entity own,
205     .entity ownfield,
206     entity icon // initial icon
207 );
208
209 .entity waypointsprite_deployed_fixed;
210 entity WaypointSprite_DeployFixed(
211     entity spr,
212     bool limited_range,
213     entity player,
214     vector ofs,
215     entity icon // initial icon
216 );
217
218 .entity waypointsprite_deployed_personal;
219 entity WaypointSprite_DeployPersonal(
220     entity spr,
221     entity player,
222     vector ofs,
223     entity icon // initial icon
224 );
225
226 .entity waypointsprite_attached;
227 .entity waypointsprite_attachedforcarrier;
228 entity WaypointSprite_Attach(
229     entity spr,
230     entity player,
231     bool limited_range,
232     entity icon // initial icon
233 );
234
235 entity WaypointSprite_AttachCarrier(
236     entity spr,
237     entity carrier,
238     entity icon // initial icon
239 );
240
241 void WaypointSprite_DetachCarrier(entity carrier);
242
243 void WaypointSprite_ClearPersonal(entity this);
244
245 void WaypointSprite_ClearOwned(entity this);
246
247 void WaypointSprite_PlayerDead(entity this);
248
249 void WaypointSprite_PlayerGone(entity this);
250 #endif