@@ -191,6 +191,7 @@ noref void(float apiver, string enginename, float enginever) CSQC_Init = {
191
191
precache_model("progs/turrpreview.mdl");
192
192
sentry_preview = spawn();
193
193
setmodel(sentry_preview, "progs/turrpreview.mdl");
194
+ setsize(sentry_preview, '-16 -16 0', '16 16 48');
194
195
sentry_preview.alpha = 0.25;
195
196
196
197
precache_model("progs/sphere.mdl");
@@ -218,6 +219,20 @@ void PMD_DrawGraphs(float width);
218
219
219
220
DEFCVAR_FLOAT(fov, 90);
220
221
222
+ void adjustEntityAboveGround(entity ent) {
223
+ vector startPos, endPos;
224
+
225
+ // Define start and end points for the trace downwards
226
+ startPos = ent.origin + '0 0 100'; // Start 100 units above the entity's origin
227
+ endPos = ent.origin - '0 0 1000'; // Trace downwards a sufficient distance
228
+
229
+ // Perform the tracebox from startPos to endPos
230
+ tracebox(startPos, ent.mins, ent.maxs, endPos, MOVE_NORMAL, ent);
231
+
232
+ // Move the entity up to be 1 unit above the ground
233
+ ent.origin[2] = trace_endpos[2] - (ent.mins[2] - ent.maxs[2]) + 1; // 1 unit above the ground
234
+ }
235
+
221
236
noref void(float width, float height, float menushown) CSQC_UpdateView = {
222
237
float fts = perf_start_sample(&frame_timing);
223
238
clearscene();
@@ -250,6 +265,7 @@ noref void(float width, float height, float menushown) CSQC_UpdateView = {
250
265
v_forward_sentry.y = xy_pos.y;
251
266
252
267
sentry_preview.origin = PM_Org() + v_forward_sentry;
268
+ adjustEntityAboveGround(sentry_preview);
253
269
sentry_preview_range_sphere.origin = sentry_preview.origin;
254
270
sentry_preview.angles_y = anglemod(view_angles_y + sentry_preview_offset);
255
271
} else {
0 commit comments