Skip to content

Commit c833aec

Browse files
sbeedsMotoLegacy
authored andcommitted
SERVER: Properly detect closed doors between zones
1 parent af7fa4c commit c833aec

3 files changed

Lines changed: 17 additions & 4 deletions

File tree

source/server/ai/zoning_core.qc

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,18 @@ float(entity players, float adj_zone) Zoning_CheckDoors =
7777
if (stored_zones[players.current_zone].way_target[i] == stored_zones[adj_zone].way_target[i]) {
7878
if (stored_zones[adj_zone].way_target[j] != "") {
7979
can_spawn = Zoning_IsOpen(adj_zone, i);
80+
return can_spawn;
8081
}
8182
}
82-
/*
83+
8384
// reversed to catch all cases
8485
if (stored_zones[players.current_zone].way_target[j] == stored_zones[adj_zone].way_target[i]) {
8586
if (stored_zones[adj_zone].way_target[j] != "") {
8687
can_spawn = Zoning_IsOpen(adj_zone, i);
88+
return can_spawn;
8789
}
8890
}
89-
*/
91+
9092
}
9193

9294
}
@@ -279,6 +281,7 @@ void() Zoning_SpawnEnts =
279281

280282
setorigin(zone_view, plot_point);
281283
zone_view.solid = SOLID_NOT;
284+
precache_model("models/pu/instakill!.mdl");
282285
setmodel(zone_view, "models/pu/instakill!.mdl");
283286
zone_view.classname = "zone_view";
284287
zone_view.effects = EF_FULLBRIGHT;
@@ -295,6 +298,7 @@ void() Zoning_SpawnEnts =
295298

296299
setorigin(zone_view, plot_point);
297300
zone_view.solid = SOLID_NOT;
301+
precache_model("models/pu/x2!.mdl");
298302
setmodel(zone_view, "models/pu/x2!.mdl");
299303
zone_view.classname = "zone_view";
300304
zone_view.effects = EF_FULLBRIGHT;
@@ -311,6 +315,7 @@ void() Zoning_SpawnEnts =
311315

312316
setorigin(zone_view, plot_point);
313317
zone_view.solid = SOLID_NOT;
318+
precache_model("models/pu/pack!.mdl");
314319
setmodel(zone_view, "models/pu/pack!.mdl");
315320
zone_view.classname = "zone_view";
316321
zone_view.effects = EF_FULLBRIGHT;
@@ -327,6 +332,7 @@ void() Zoning_SpawnEnts =
327332

328333
setorigin(zone_view, plot_point);
329334
zone_view.solid = SOLID_NOT;
335+
precache_model("models/pu/points!.mdl");
330336
setmodel(zone_view, "models/pu/points!.mdl");
331337
zone_view.classname = "zone_view";
332338
zone_view.effects = EF_FULLBRIGHT;
@@ -343,6 +349,7 @@ void() Zoning_SpawnEnts =
343349

344350
setorigin(zone_view, plot_point);
345351
zone_view.solid = SOLID_NOT;
352+
precache_model("models/pu/nuke!.mdl");
346353
setmodel(zone_view, "models/pu/nuke!.mdl");
347354
zone_view.classname = "zone_view";
348355
zone_view.effects = EF_FULLBRIGHT;
@@ -359,6 +366,7 @@ void() Zoning_SpawnEnts =
359366

360367
setorigin(zone_view, plot_point);
361368
zone_view.solid = SOLID_NOT;
369+
precache_model("models/pu/carpenter!.mdl");
362370
setmodel(zone_view, "models/pu/carpenter!.mdl");
363371
zone_view.classname = "zone_view";
364372
zone_view.effects = EF_FULLBRIGHT;
@@ -376,6 +384,7 @@ void() Zoning_SpawnEnts =
376384

377385
setorigin(zone_view, plot_point);
378386
zone_view.solid = SOLID_NOT;
387+
precache_model("models/pu/maxammo!.mdl");
379388
setmodel(zone_view, "models/pu/maxammo!.mdl");
380389
zone_view.classname = "zone_view";
381390
zone_view.effects = EF_FULLBRIGHT;
@@ -392,6 +401,7 @@ void() Zoning_SpawnEnts =
392401

393402
setorigin(zone_view, plot_point);
394403
zone_view.solid = SOLID_NOT;
404+
precache_model("models/pu/perkbottle!.mdl");
395405
setmodel(zone_view, "models/pu/perkbottle!.mdl");
396406
zone_view.classname = "zone_view";
397407
zone_view.effects = EF_FULLBRIGHT;
@@ -456,6 +466,8 @@ void(entity players) Zoning_SetFog =
456466
#ifdef DEBUG
457467
void(entity players) Zoning_PrintZones =
458468
{
469+
dprint("====================");
470+
dprint("\n");
459471
dprint("Current Zone: ");
460472
dprint(stored_zones[players.current_zone].name);
461473
dprint("\n");
@@ -475,6 +487,8 @@ void(entity players) Zoning_PrintZones =
475487
}
476488
}
477489
dprint("\n");
490+
dprint("====================");
491+
dprint("\n");
478492

479493
entity zombies = find (world, classname, "spawn_zombie");
480494
while (zombies != world) {

source/server/main.qc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,7 @@ void() worldspawn =
418418

419419
LoadWaypointData();
420420
Zoning_LoadData();
421+
Zoning_SpawnEnts();
421422

422423
//set game elements
423424
G_PRONEPOINTS = 0;

source/server/player/player_core.qc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,8 +1185,6 @@ void() PutClientInServer =
11851185
#endif // FTE
11861186

11871187
GameRestart_ResetPerkaColas();
1188-
1189-
Zoning_SpawnEnts();
11901188
};
11911189

11921190
void() RestartDedicatedServer =

0 commit comments

Comments
 (0)