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