X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Flib%2Fwarpzone%2Fserver.qc;h=9958a5df4a4497242afc4b0f7028bba54500be64;hp=ce4535452da5405d3b57495462ac51d27c9dd1ce;hb=e0012447bfce1b551df3dc01b043655aa93dafad;hpb=c3f4bfe02b1f024b183210717a4da3f84ddc0079 diff --git a/qcsrc/lib/warpzone/server.qc b/qcsrc/lib/warpzone/server.qc index ce4535452..9958a5df4 100644 --- a/qcsrc/lib/warpzone/server.qc +++ b/qcsrc/lib/warpzone/server.qc @@ -6,10 +6,11 @@ #elif defined(SVQC) #include #include - #include + #include #include #include #include + #include #endif #ifdef WARPZONELIB_KEEPDEBUG @@ -28,12 +29,12 @@ .float warpzone_teleport_finishtime; .entity warpzone_teleport_zone; -#define WarpZone_StoreProjectileData(e_) MACRO_BEGIN { \ +#define WarpZone_StoreProjectileData(e_) MACRO_BEGIN \ entity e = e_; \ e.warpzone_oldorigin = e.origin; \ e.warpzone_oldvelocity = e.velocity; \ e.warpzone_oldangles = e.angles; \ - } MACRO_END + MACRO_END void WarpZone_TeleportPlayer(entity teleporter, entity player, vector to, vector to_angles, vector to_velocity) { @@ -42,11 +43,17 @@ void WarpZone_TeleportPlayer(entity teleporter, entity player, vector to, vector player.lastteleporttime = time; #endif setorigin(player, to); // NOTE: this also aborts the move, when this is called by touch + player.angles = to_angles; #ifdef SVQC player.oldorigin = to; // for DP's unsticking player.fixangle = true; + if (IS_BOT_CLIENT(player)) + { + // FIXME find a way to smooth view's angles change for bots too + player.v_angle = player.angles; + bot_aim_reset(player); + } #endif - player.angles = to_angles; player.velocity = to_velocity; BITXOR_ASSIGN(player.effects, EF_TELEPORT_BIT);