Skip to content

Commit 5bfd311

Browse files
committed
Merge branch 'build-better' into staging
2 parents 10ff5a4 + b3b5016 commit 5bfd311

File tree

4 files changed

+32
-76
lines changed

4 files changed

+32
-76
lines changed

csqc/input.qc

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,6 @@ void FO_Menu_Game(float);
44
// TRUE --> capture input
55
// FALSE --> pass input on
66
float(float evtype, float scanx, float chary, float devid) CSQC_InputEvent = {
7-
switch (evtype)
8-
{
9-
case IE_MOUSEDELTA:
10-
if (previewing_sentry) {
11-
sentry_preview.angles_y = anglemod(input_angles_y + (sentry_preview_offset + 180));
12-
}
13-
default:
14-
}
15-
167
if (fo_hud_editor || fo_hud_menu_active) {
178
sui_input_event(evtype, scanx, chary, devid);
189
float menu_mouse = (fo_hud_menu_active && (CurrentMenu.flags & FO_MENU_FLAG_USE_MOUSE));

csqc/main.qc

Lines changed: 15 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ float CalculateWaterLevel();
1818
void RenderHitTexts();
1919
entity sentry_preview;
2020
entity sentry_preview_range_sphere;
21-
entity temp_sentry;
22-
entity temp_self;
2321
float sentry_preview_offset;
2422
float previewing_sentry;
2523
float prevent_firing;
@@ -29,27 +27,6 @@ void GetSelf() = {
2927
self = findfloat(world, entnum, player_localentnum);
3028
}
3129

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-
5330
void PushToSlotHistory(float value) {
5431
if (slot_history_top >= MAX_SLOT_HISTORY_SIZE) {
5532
// Stack is full
@@ -211,9 +188,6 @@ noref void(float apiver, string enginename, float enginever) CSQC_Init = {
211188

212189
pengine.view_mask = MASK_VIEWMODEL; // Start with engine models.
213190

214-
temp_sentry = spawn();
215-
temp_self = spawn();
216-
217191
precache_model("progs/turrpreview.mdl");
218192
sentry_preview = spawn();
219193
setmodel(sentry_preview, "progs/turrpreview.mdl");
@@ -268,23 +242,16 @@ noref void(float width, float height, float menushown) CSQC_UpdateView = {
268242

269243
if (previewing_sentry) {
270244
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;
275247
v_forward_z = 0;
276248
local vector xy_pos = normalize(v_forward) * 64;
277-
278-
local vector v_forward_sentry;
279249
v_forward_sentry.x = xy_pos.x;
280250
v_forward_sentry.y = xy_pos.y;
281-
v_forward_sentry.z = z_pos.z;
282251

283252
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;
287253
sentry_preview_range_sphere.origin = sentry_preview.origin;
254+
sentry_preview.angles_y = anglemod(view_angles_y + sentry_preview_offset);
288255
} else {
289256
setproperty(VF_DRAWCROSSHAIR, 1); // we want to draw our crosshair!
290257
}
@@ -336,8 +303,8 @@ noref float(string cmd) CSQC_ConsoleCommand = {
336303
break;
337304
case PC_ENGINEER:
338305
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);
341308
} else {
342309
localcmd("cmd sentry rotate 15\n");
343310
}
@@ -351,8 +318,8 @@ noref float(string cmd) CSQC_ConsoleCommand = {
351318
break;
352319
case PC_ENGINEER:
353320
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);
356323
} else {
357324
localcmd("cmd sentry rotate -15\n");
358325
}
@@ -745,7 +712,7 @@ void FO_ApplyCussInput() {
745712
void PM_InputFrame();
746713

747714
void SentryPreviewStart() {
748-
sentry_preview_offset = 180;
715+
sentry_preview_offset = 0;
749716
sentry_preview.angles_y = input_angles_y;
750717
sentry_preview.drawmask = MASK_ENGINE;
751718

@@ -810,7 +777,7 @@ noref void CSQC_Input_Frame() {
810777
if (previewing_sentry) {
811778
if (keydowns & BUTTON0) {
812779
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)));
814781
SentryPreviewStop();
815782
} else {
816783
print("Can't build here\n");
@@ -903,13 +870,14 @@ void _Sync_ServerCommandFrame() {
903870
CsGrenTimer::UpdateSoundStack();
904871
UpdateTeamColorCrosshair();
905872

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 {
908878
SentryPreviewStop();
879+
}
909880
}
910-
911-
sentry_fits = CheckArea(temp_sentry, temp_self);
912-
sentry_preview.colormod = sentry_fits ? '1 1 1' : '1 0.5 0.5';
913881
}
914882

915883

share/engineer.qc

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
float (entity obj, entity builder) CheckArea = {
1+
float (entity obj) CheckArea = {
22
local vector src;
33
local vector end;
44
local float pos;
@@ -8,16 +8,16 @@ float (entity obj, entity builder) CheckArea = {
88
if ((pos == CONTENT_SOLID) || (pos == CONTENT_SKY)) {
99
return (0);
1010
}
11-
src_x = (obj.origin_x + obj.maxs_x) + 24;
12-
src_y = (obj.origin_y + obj.maxs_y) + 24;
13-
src_z = (obj.origin_z + obj.maxs_z);
11+
src_x = (obj.origin_x) + 24;
12+
src_y = (obj.origin_y) + 24;
13+
src_z = (obj.origin_z);
1414
pos = pointcontents(src);
1515
if ((pos == CONTENT_SOLID) || (pos == CONTENT_SKY)) {
1616
return (0);
1717
}
18-
end_x = (obj.origin_x + obj.mins_x) - 16;
19-
end_y = (obj.origin_y + obj.mins_y) - 16;
20-
end_z = (obj.origin_z + obj.mins_z);
18+
end_x = (obj.origin_x) - 16;
19+
end_y = (obj.origin_y) - 16;
20+
end_z = (obj.origin_z);
2121
traceline(src, end, 1, obj);
2222
if (trace_fraction != 1) {
2323
return (0);
@@ -26,16 +26,16 @@ float (entity obj, entity builder) CheckArea = {
2626
if ((pos == CONTENT_SOLID) || (pos == CONTENT_SKY)) {
2727
return (0);
2828
}
29-
src_x = (obj.origin_x + obj.mins_x) - 16;
30-
src_y = (obj.origin_y + obj.maxs_y) + 16;
31-
src_z = (obj.origin_z + obj.maxs_z);
29+
src_x = (obj.origin_x) - 16;
30+
src_y = (obj.origin_y) + 16;
31+
src_z = (obj.origin_z);
3232
pos = pointcontents(src);
3333
if ((pos == CONTENT_SOLID) || (pos == CONTENT_SKY)) {
3434
return (0);
3535
}
36-
end_x = (obj.origin_x + obj.maxs_x) + 16;
37-
end_y = (obj.origin_y + obj.mins_y) - 16;
38-
end_z = (obj.origin_z + obj.mins_z);
36+
end_x = (obj.origin_x) + 16;
37+
end_y = (obj.origin_y) - 16;
38+
end_z = (obj.origin_z);
3939
traceline(src, end, 1, obj);
4040
if (trace_fraction != 1) {
4141
return (0);
@@ -48,6 +48,7 @@ float (entity obj, entity builder) CheckArea = {
4848
/* if (trace_fraction != 1) { */
4949
/* return (0); */
5050
/* } */
51+
5152
te = findradius(obj.origin, 64);
5253
if (te != world) {
5354
return (0);

ssqc/engineer.qc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,6 @@ void () TeamFortress_EngineerBuildStop = {
533533
}
534534
}
535535

536-
// here
537536
void (float objtobuild, float offset) TeamFortress_Build = {
538537
if (cb_prematch) {
539538
sprint(self, PRINT_MEDIUM, "You cannot build during prematch\n");
@@ -560,15 +559,12 @@ void (float objtobuild, float offset) TeamFortress_Build = {
560559
/* v_forward = normalize(v_forward) * 64; */
561560
/* newmis.origin = self.origin + v_forward; */
562561

563-
local vector z_pos;
564-
z_pos.z = (normalize(v_forward) * 64).z;
562+
local vector v_forward_sentry;
563+
v_forward_sentry.z = (normalize(v_forward) * 64).z;
565564
v_forward_z = 0;
566565
local vector xy_pos = normalize(v_forward) * 64;
567-
568-
local vector v_forward_sentry;
569566
v_forward_sentry.x = xy_pos.x;
570567
v_forward_sentry.y = xy_pos.y;
571-
v_forward_sentry.z = z_pos.z;
572568

573569
newmis.origin = self.origin + v_forward_sentry;
574570

@@ -616,7 +612,7 @@ void (float objtobuild, float offset) TeamFortress_Build = {
616612
self.sentry_ticks = 0;
617613
}
618614

619-
if (CheckArea(newmis, self) == 0) {
615+
if (!CheckArea(newmis)) {
620616
sprint(self, PRINT_HIGH, "You can't build here\n");
621617
dremove(newmis);
622618
return;

0 commit comments

Comments
 (0)