X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fportals.qc;h=20039cfcc8205c83f784012c01a286cdfc531e50;hb=573a45ee4af6014b2465242cbf884453d371b5da;hp=8a40b111840a34ebf2198ba53787d00fc59a8d2a;hpb=0a980f57412cf2253cfd73c8c01a26fb04c87189;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/portals.qc b/qcsrc/server/portals.qc index 8a40b1118..20039cfcc 100644 --- a/qcsrc/server/portals.qc +++ b/qcsrc/server/portals.qc @@ -1,14 +1,15 @@ #include "portals.qh" +#include #include "g_hook.qh" -#include "mutators/all.qh" +#include "mutators/_mod.qh" #include "../common/constants.qh" #include "../common/deathtypes/all.qh" #include "../common/notifications/all.qh" #include "../common/triggers/teleporters.qh" #include "../common/triggers/subs.qh" #include "../common/util.qh" -#include "../common/weapons/all.qh" +#include #include "../lib/csqcmodel/sv_model.qh" #include "../lib/warpzone/anglestransform.qh" #include "../lib/warpzone/util_server.qh" @@ -148,7 +149,7 @@ float Portal_TeleportPlayer(entity teleporter, entity player) tracebox(safe, player.mins - SAFENUDGE, player.maxs + SAFENUDGE, step, MOVE_NOMONSTERS, player); if(trace_startsolid) { - LOG_INFO("'safe' teleport location is not safe!\n"); + LOG_INFO("'safe' teleport location is not safe!"); // FAIL TODO why does this happen? return 0; } @@ -156,7 +157,7 @@ float Portal_TeleportPlayer(entity teleporter, entity player) tracebox(safe, player.mins - SAFENUDGE, player.maxs + SAFENUDGE, to, MOVE_NOMONSTERS, player); if(trace_startsolid) { - LOG_INFO("trace_endpos in solid, this can't be!\n"); + LOG_INFO("trace_endpos in solid, this can't be!"); // FAIL TODO why does this happen? (reported by MrBougo) return 0; } @@ -208,14 +209,14 @@ float Portal_FindSafeOrigin(entity portal) { vector o; o = portal.origin; - portal.mins = STAT(PL_MIN, NULL) - SAFERNUDGE; - portal.maxs = STAT(PL_MAX, NULL) + SAFERNUDGE; + portal.mins = PL_MIN_CONST - SAFERNUDGE; + portal.maxs = PL_MAX_CONST + SAFERNUDGE; fixedmakevectors(portal.mangle); portal.origin += 16 * v_forward; if(!move_out_of_solid(portal)) { #ifdef DEBUG - LOG_INFO("NO SAFE ORIGIN\n"); + LOG_INFO("NO SAFE ORIGIN"); #endif return 0; } @@ -473,7 +474,7 @@ void Portal_Think(entity this) fixedmakevectors(this.mangle); - FOREACH_CLIENT(IS_PLAYER(it), LAMBDA( + FOREACH_CLIENT(IS_PLAYER(it), { if(it != o) if(IS_INDEPENDENT_PLAYER(it) || IS_INDEPENDENT_PLAYER(o)) continue; // cannot go through someone else's portal @@ -481,9 +482,13 @@ void Portal_Think(entity this) if(it != o || time >= this.portal_activatetime) Portal_Think_TryTeleportPlayer(this, it, g); - if(it.hook) - Portal_Think_TryTeleportPlayer(this, it.hook, g); - )); + for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) + { + .entity weaponentity = weaponentities[slot]; + if(it.(weaponentity).hook) + Portal_Think_TryTeleportPlayer(this, it.(weaponentity).hook, g); + } + }); this.solid = SOLID_TRIGGER; this.aiment = o; #endif