@@ -18,8 +18,6 @@ float CalculateWaterLevel();
18
18
void RenderHitTexts();
19
19
entity sentry_preview;
20
20
entity sentry_preview_range_sphere;
21
- entity temp_sentry;
22
- entity temp_self;
23
21
float sentry_preview_offset;
24
22
float previewing_sentry;
25
23
float prevent_firing;
@@ -29,27 +27,6 @@ void GetSelf() = {
29
27
self = findfloat(world, entnum, player_localentnum);
30
28
}
31
29
32
- /* vector AnglesToVector(vector angles) { */
33
- /* float pitch, yaw, roll; */
34
- /* vector dir; */
35
-
36
- /* pitch = angles_x * (M_PI / 180.0); */
37
- /* yaw = angles_y * (M_PI / 180.0); */
38
- /* roll = angles_z * (M_PI / 180.0); */
39
-
40
- /* dir_x = cos(yaw) * cos(pitch); */
41
- /* dir_y = sin(yaw) * cos(pitch); */
42
- /* dir_z = -sin(pitch); */
43
-
44
- /* return dir; */
45
- /* } */
46
-
47
- /* vector GetNewPosition(entity ent, vector angle_offsets, float distance) { */
48
- /* vector dir = AnglesToVector(ent.angles + angle_offsets); */
49
- /* vector new_position = ent.origin + dir * distance; */
50
- /* return new_position; */
51
- /* } */
52
-
53
30
void PushToSlotHistory(float value) {
54
31
if (slot_history_top >= MAX_SLOT_HISTORY_SIZE) {
55
32
// Stack is full
@@ -211,9 +188,6 @@ noref void(float apiver, string enginename, float enginever) CSQC_Init = {
211
188
212
189
pengine.view_mask = MASK_VIEWMODEL; // Start with engine models.
213
190
214
- temp_sentry = spawn();
215
- temp_self = spawn();
216
-
217
191
precache_model("progs/turrpreview.mdl");
218
192
sentry_preview = spawn();
219
193
setmodel(sentry_preview, "progs/turrpreview.mdl");
@@ -268,23 +242,16 @@ noref void(float width, float height, float menushown) CSQC_UpdateView = {
268
242
269
243
if (previewing_sentry) {
270
244
makevectors(view_angles);
271
-
272
- // can probably use trig here so we don't need to normalize twice
273
- local vector z_pos;
274
- z_pos.z = (normalize(v_forward) * 64).z;
245
+ local vector v_forward_sentry;
246
+ v_forward_sentry.z = (normalize(v_forward) * 64).z;
275
247
v_forward_z = 0;
276
248
local vector xy_pos = normalize(v_forward) * 64;
277
-
278
- local vector v_forward_sentry;
279
249
v_forward_sentry.x = xy_pos.x;
280
250
v_forward_sentry.y = xy_pos.y;
281
- v_forward_sentry.z = z_pos.z;
282
251
283
252
sentry_preview.origin = PM_Org() + v_forward_sentry;
284
- setorigin(temp_self, sentry_preview.origin);
285
- temp_sentry.origin = sentry_preview.origin;
286
- local vector v_forward_range = normalize(v_forward) * 1024;
287
253
sentry_preview_range_sphere.origin = sentry_preview.origin;
254
+ sentry_preview.angles_y = anglemod(view_angles_y + sentry_preview_offset);
288
255
} else {
289
256
setproperty(VF_DRAWCROSSHAIR, 1); // we want to draw our crosshair!
290
257
}
@@ -336,8 +303,8 @@ noref float(string cmd) CSQC_ConsoleCommand = {
336
303
break;
337
304
case PC_ENGINEER:
338
305
if (previewing_sentry) {
339
- sentry_preview.angles_y -= 15;
340
- sentry_preview_offset -= 15;
306
+ anglemod( sentry_preview.angles_y -= 15) ;
307
+ anglemod( sentry_preview_offset -= 15) ;
341
308
} else {
342
309
localcmd("cmd sentry rotate 15\n");
343
310
}
@@ -351,8 +318,8 @@ noref float(string cmd) CSQC_ConsoleCommand = {
351
318
break;
352
319
case PC_ENGINEER:
353
320
if (previewing_sentry) {
354
- sentry_preview.angles_y += 15;
355
- sentry_preview_offset += 15;
321
+ anglemod( sentry_preview.angles_y += 15) ;
322
+ anglemod( sentry_preview_offset += 15) ;
356
323
} else {
357
324
localcmd("cmd sentry rotate -15\n");
358
325
}
@@ -745,7 +712,7 @@ void FO_ApplyCussInput() {
745
712
void PM_InputFrame();
746
713
747
714
void SentryPreviewStart() {
748
- sentry_preview_offset = 180 ;
715
+ sentry_preview_offset = 0 ;
749
716
sentry_preview.angles_y = input_angles_y;
750
717
sentry_preview.drawmask = MASK_ENGINE;
751
718
@@ -810,7 +777,7 @@ noref void CSQC_Input_Frame() {
810
777
if (previewing_sentry) {
811
778
if (keydowns & BUTTON0) {
812
779
if (sentry_fits) {
813
- localcmd(sprintf("cmd build sentry %f\n", sentry_preview_offset));
780
+ localcmd(sprintf("cmd build sentry %f\n", anglemod(180 + sentry_preview_offset) ));
814
781
SentryPreviewStop();
815
782
} else {
816
783
print("Can't build here\n");
@@ -903,13 +870,14 @@ void _Sync_ServerCommandFrame() {
903
870
CsGrenTimer::UpdateSoundStack();
904
871
UpdateTeamColorCrosshair();
905
872
906
- if (!game_state.is_alive) {
907
- if (previewing_sentry)
873
+ if (previewing_sentry) {
874
+ if (game_state.is_alive) {
875
+ sentry_fits = CheckArea(sentry_preview);
876
+ sentry_preview.colormod = sentry_fits ? '1 1 1' : '0.5 0.2 0.2';
877
+ } else {
908
878
SentryPreviewStop();
879
+ }
909
880
}
910
-
911
- sentry_fits = CheckArea(temp_sentry, temp_self);
912
- sentry_preview.colormod = sentry_fits ? '1 1 1' : '1 0.5 0.5';
913
881
}
914
882
915
883
0 commit comments