Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yamagi-quake2-ctf for 
openSUSE:Factory checked in at 2021-06-29 22:43:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yamagi-quake2-ctf (Old)
 and      /work/SRC/openSUSE:Factory/.yamagi-quake2-ctf.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yamagi-quake2-ctf"

Tue Jun 29 22:43:29 2021 rev:4 rq:903008 version:1.08

Changes:
--------
--- /work/SRC/openSUSE:Factory/yamagi-quake2-ctf/yamagi-quake2-ctf.changes      
2020-09-14 12:32:58.561276479 +0200
+++ 
/work/SRC/openSUSE:Factory/.yamagi-quake2-ctf.new.2625/yamagi-quake2-ctf.changes
    2021-06-29 22:44:08.434943393 +0200
@@ -1,0 +2,6 @@
+Mon Jun 28 13:33:19 UTC 2021 - Martin Hauke <[email protected]>
+
+- Update to version 1.08
+  * Several small bugfixes.
+
+-------------------------------------------------------------------

Old:
----
  quake2-ctf-1.07.tar.xz

New:
----
  quake2-ctf-1.08.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yamagi-quake2-ctf.spec ++++++
--- /var/tmp/diff_new_pack.SBxmBO/_old  2021-06-29 22:44:08.874943974 +0200
+++ /var/tmp/diff_new_pack.SBxmBO/_new  2021-06-29 22:44:08.874943974 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package yamagi-quake2-ctf
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 # Copyright (c) 2017, Martin Hauke <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
 
 
 Name:           yamagi-quake2-ctf
-Version:        1.07
+Version:        1.08
 Release:        0
 Summary:        Quake II - Three Wave Capture The Flag for yamagi-quake2
 License:        GPL-2.0-or-later

++++++ quake2-ctf-1.07.tar.xz -> quake2-ctf-1.08.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/CHANGELOG 
new/quake2-ctf-1.08/CHANGELOG
--- old/quake2-ctf-1.07/CHANGELOG       2020-02-24 17:01:11.000000000 +0100
+++ new/quake2-ctf-1.08/CHANGELOG       2021-06-14 16:33:32.000000000 +0200
@@ -1,3 +1,6 @@
+Three Wave Capture The Flag 1.07 to 1.08
+- Several small bugfixes.
+
 Three Wave Capture The Flag 1.06 to 1.07
 - Several small bugfixes.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/Makefile new/quake2-ctf-1.08/Makefile
--- old/quake2-ctf-1.07/Makefile        2020-02-24 17:01:11.000000000 +0100
+++ new/quake2-ctf-1.08/Makefile        2021-06-14 16:33:32.000000000 +0200
@@ -6,32 +6,54 @@
 #                                                       #
 # Dependencies:                                         #
 # - None, but you need a Quake II to play.              #
-#   While in theorie every one should work              #
-#   Yamagi Quake II ist recommended.                    #
+#   While in theory every one should work              #
+#   Yamagi Quake II is recommended.                    #
 #                                                       #
 # Platforms:                                            #
 # - FreeBSD                                             #
 # - Linux                                               #
 # - Mac OS X                                            #
 # - OpenBSD                                             #
-# - Windows                                             # 
+# - Windows                                             #
 # ----------------------------------------------------- #
 
 # Detect the OS
 ifdef SystemRoot
-OSTYPE := Windows
+YQ2_OSTYPE ?= Windows
 else
-OSTYPE := $(shell uname -s)
+YQ2_OSTYPE ?= $(shell uname -s)
 endif
- 
+
 # Special case for MinGW
-ifneq (,$(findstring MINGW,$(OSTYPE)))
-OSTYPE := Windows
+ifneq (,$(findstring MINGW,$(YQ2_OSTYPE)))
+YQ2_OSTYPE := Windows
+endif
+
+# Detect the architecture
+ifeq ($(YQ2_OSTYPE), Windows)
+ifdef MINGW_CHOST
+ifeq ($(MINGW_CHOST), x86_64-w64-mingw32)
+YQ2_ARCH ?= x86_64
+else # i686-w64-mingw32
+YQ2_ARCH ?= i386
+endif
+else # windows, but MINGW_CHOST not defined
+ifdef PROCESSOR_ARCHITEW6432
+# 64 bit Windows
+YQ2_ARCH ?= $(PROCESSOR_ARCHITEW6432)
+else
+# 32 bit Windows
+YQ2_ARCH ?= $(PROCESSOR_ARCHITECTURE)
+endif
+endif # windows but MINGW_CHOST not defined
+else
+# Normalize some abiguous YQ2_ARCH strings
+YQ2_ARCH ?= $(shell uname -m | sed -e 's/i.86/i386/' -e 's/amd64/x86_64/' -e 
's/^arm.*/arm/')
 endif
 
 # On Windows / MinGW $(CC) is undefined by default.
 ifeq ($(YQ2_OSTYPE),Windows)
-CC := gcc
+CC ?= gcc
 endif
 
 # Detect the compiler
@@ -47,35 +69,37 @@
 
 # ----------
 
-# Base CFLAGS. 
-#
-# -O2 are enough optimizations.
-# 
-# -fno-strict-aliasing since the source doesn't comply
-#  with strict aliasing rules and it's next to impossible
-#  to get it there...
-#
-# -fomit-frame-pointer since the framepointer is mostly
-#  useless for debugging Quake II and slows things down.
-#
-# -g to build allways with debug symbols. Please do not
-#  change this, since it's our only chance to debug this
-#  crap when random crashes happen!
-#
-# -fPIC for position independend code.
-#
-# -MMD to generate header dependencies.
-ifeq ($(OSTYPE), Darwin)
-CFLAGS := -O2 -fno-strict-aliasing -fomit-frame-pointer \
-                 -Wall -pipe -g -fwrapv -arch x86_64
+# Base CFLAGS. These may be overridden by the environment.
+# Highest supported optimizations are -O2, higher levels
+# will likely break this crappy code.
+ifdef DEBUG
+CFLAGS ?= -O0 -g -Wall -pipe
 else
-CFLAGS := -O2 -fno-strict-aliasing -fomit-frame-pointer \
-                 -Wall -pipe -g -MMD -fwrapv
+CFLAGS ?= -O2 -Wall -pipe -fomit-frame-pointer
+endif
+
+# Always needed are:
+#  -fno-strict-aliasing since the source doesn't comply
+#   with strict aliasing rules and it's next to impossible
+#   to get it there...
+#  -fwrapv for defined integer wrapping. MSVC6 did this
+#   and the game code requires it.
+override CFLAGS += -std=gnu99 -fno-strict-aliasing -fwrapv
+
+# -MMD to generate header dependencies. Unsupported by
+#  the Clang shipped with OS X.
+ifneq ($(YQ2_OSTYPE), Darwin)
+override CFLAGS += -MMD
+endif
+
+# OS X architecture.
+ifeq ($(YQ2_OSTYPE), Darwin)
+override CFLAGS += -arch $(YQ2_ARCH)
 endif
 
 # ----------
 
-# Switch of some annoying warnings.
+# Switch off some annoying warnings.
 ifeq ($(COMPILER), clang)
        # -Wno-missing-braces because otherwise clang complains
        #  about totally valid 'vec3_t bla = {0}' constructs.
@@ -91,17 +115,12 @@
 
 # ----------
 
-# Base LDFLAGS.
-ifeq ($(OSTYPE), Darwin)
-LDFLAGS := -shared -arch x86_64
-else ifeq ($(OSTYPE), Windows)
-LDFLAGS := -shared -static-libgcc
-else
-LDFLAGS := -shared -lm
-endif
+# Defines the operating system and architecture
+override CFLAGS += -DYQ2OSTYPE=\"$(YQ2_OSTYPE)\" -DYQ2ARCH=\"$(YQ2_ARCH)\"
 
 # ----------
 
+# For reproducible builds, look here for details:
 # https://reproducible-builds.org/specs/source-date-epoch/
 ifdef SOURCE_DATE_EPOCH
 CFLAGS += -DBUILD_DATE=\"$(shell date --utc --date="@${SOURCE_DATE_EPOCH}" 
+"%b %_d %Y" | sed -e 's/ /\\ /g')\"
@@ -109,11 +128,44 @@
 
 # ----------
 
+# Using the default x87 float math on 32bit x86 causes rounding trouble
+# -ffloat-store could work around that, but the better solution is to
+# just enforce SSE - every x86 CPU since Pentium3 supports that
+# and this should even improve the performance on old CPUs
+ifeq ($(YQ2_ARCH), i386)
+override CFLAGS += -msse -mfpmath=sse
+endif
+
+# Force SSE math on x86_64. All sane compilers should do this
+# anyway, just to protect us from broken Linux distros.
+ifeq ($(YQ2_ARCH), x86_64)
+override CFLAGS += -mfpmath=sse
+endif
+
+# ----------
+
+# Base LDFLAGS.
+LDFLAGS ?=
+
+# It's a shared library.
+override LDFLAGS += -shared
+
+# Required libraries
+ifeq ($(YQ2_OSTYPE), Darwin)
+override LDFLAGS += -arch $(YQ2_ARCH)
+else ifeq ($(YQ2_OSTYPE), Windows)
+override LDFLAGS += -static-libgcc
+else
+override LDFLAGS += -lm
+endif
+
+# ----------
+
 # Builds everything
 all: ctf
 
 # ----------
- 
+
 # When make is invoked by "make VERBOSE=1" print
 # the compiler and linker commands.
 
@@ -129,21 +181,21 @@
 .PHONY : all clean ctf
 
 # ----------
- 
+
 # Cleanup
 clean:
        @echo "===> CLEAN"
        ${Q}rm -Rf build release
- 
+
 # ----------
 
 # The ctf game
-ifeq ($(OSTYPE), Windows)
+ifeq ($(YQ2_OSTYPE), Windows)
 ctf:
        @echo "===> Building game.dll"
        $(Q)mkdir -p release
        $(MAKE) release/game.dll
-else ifeq ($(OSTYPE), Darwin)
+else ifeq ($(YQ2_OSTYPE), Darwin)
 ctf:
        @echo "===> Building game.dylib"
        ${Q}mkdir -p release
@@ -156,7 +208,7 @@
 
 release/game.so : CFLAGS += -fPIC
 endif
- 
+
 build/%.o: %.c
        @echo "===> CC $<"
        $(Q)mkdir -p $(@D)
@@ -190,7 +242,7 @@
        src/player/trail.o \
        src/player/view.o \
        src/player/weapon.o \
-       src/shared/shared.o 
+       src/shared/shared.o
 
 # ----------
 
@@ -209,18 +261,18 @@
 
 # ----------
 
-ifeq ($(OSTYPE), Windows)
+ifeq ($(YQ2_OSTYPE), Windows)
 release/game.dll : $(CTF_OBJS)
        @echo "===> LD $@"
-       $(Q)$(CC) $(LDFLAGS) -o $@ $(CTF_OBJS)
-else ifeq ($(OSTYPE), Darwin)
+       $(Q)$(CC) -o $@ $(CTF_OBJS) $(LDFLAGS)
+else ifeq ($(YQ2_OSTYPE), Darwin)
 release/game.dylib : $(CTF_OBJS)
        @echo "===> LD $@"
-       ${Q}$(CC) $(LDFLAGS) -o $@ $(CTF_OBJS)
+       ${Q}$(CC) -o $@ $(CTF_OBJS) $(LDFLAGS)
 else
 release/game.so : $(CTF_OBJS)
        @echo "===> LD $@"
-       $(Q)$(CC) $(LDFLAGS) -o $@ $(CTF_OBJS)
+       $(Q)$(CC) -o $@ $(CTF_OBJS) $(LDFLAGS)
 endif
- 
+
 # ----------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/src/g_ctf.c 
new/quake2-ctf-1.08/src/g_ctf.c
--- old/quake2-ctf-1.07/src/g_ctf.c     2020-02-24 17:01:11.000000000 +0100
+++ new/quake2-ctf-1.08/src/g_ctf.c     2021-06-14 16:33:32.000000000 +0200
@@ -1718,8 +1718,7 @@
 
        AngleVectors(self->owner->client->v_angle, f, r, NULL);
        VectorSet(offset, 16, 16, self->owner->viewheight - 8);
-       P_ProjectSource(self->owner->client, self->owner->s.origin,
-                       offset, f, r, start);
+       P_ProjectSource(self->owner, offset, f, r, start);
 
        VectorSubtract(start, self->owner->s.origin, offset);
 
@@ -1903,7 +1902,7 @@
        AngleVectors(ent->client->v_angle, forward, right, NULL);
        VectorSet(offset, 24, 8, ent->viewheight - 8 + 2);
        VectorAdd(offset, g_offset, offset);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
 
        VectorScale(forward, -2, ent->client->kick_origin);
        ent->client->kick_angles[0] = -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/src/g_main.c 
new/quake2-ctf-1.08/src/g_main.c
--- old/quake2-ctf-1.07/src/g_main.c    2020-02-24 17:01:11.000000000 +0100
+++ new/quake2-ctf-1.08/src/g_main.c    2021-06-14 16:33:32.000000000 +0200
@@ -77,6 +77,8 @@
 
 cvar_t *sv_maplist;
 
+cvar_t *aimfix;
+
 void SpawnEntities(char *mapname, char *entities, char *spawnpoint);
 void ClientThink(edict_t *ent, usercmd_t *cmd);
 qboolean ClientConnect(edict_t *ent, char *userinfo);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/src/g_save.c 
new/quake2-ctf-1.08/src/g_save.c
--- old/quake2-ctf-1.07/src/g_save.c    2020-02-24 17:01:11.000000000 +0100
+++ new/quake2-ctf-1.08/src/g_save.c    2021-06-14 16:33:32.000000000 +0200
@@ -204,6 +204,9 @@
        /* dm map list */
        sv_maplist = gi.cvar("sv_maplist", "", 0);
 
+       /* others */
+       aimfix = gi.cvar("aimfix", "0", CVAR_ARCHIVE);
+
        /* items */
        InitItems();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/src/header/local.h 
new/quake2-ctf-1.08/src/header/local.h
--- old/quake2-ctf-1.07/src/header/local.h      2020-02-24 17:01:11.000000000 
+0100
+++ new/quake2-ctf-1.08/src/header/local.h      2021-06-14 16:33:32.000000000 
+0200
@@ -541,6 +541,8 @@
 
 extern cvar_t *sv_maplist;
 
+extern cvar_t *aimfix;
+
 #define world (&g_edicts[0])
 
 /* item spawnflags */
@@ -760,7 +762,7 @@
 
 /* g_pweapon.c */
 void PlayerNoise(edict_t *who, vec3_t where, int type);
-void P_ProjectSource(gclient_t *client, vec3_t point, vec3_t distance,
+void P_ProjectSource(edict_t *ent, vec3_t distance,
                vec3_t forward, vec3_t right, vec3_t result);
 void Weapon_Generic(edict_t *ent, int FRAME_ACTIVATE_LAST, int FRAME_FIRE_LAST,
                int FRAME_IDLE_LAST, int FRAME_DEACTIVATE_LAST, int 
*pause_frames,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/src/player/client.c 
new/quake2-ctf-1.08/src/player/client.c
--- old/quake2-ctf-1.07/src/player/client.c     2020-02-24 17:01:11.000000000 
+0100
+++ new/quake2-ctf-1.08/src/player/client.c     2021-06-14 16:33:32.000000000 
+0200
@@ -22,7 +22,7 @@
  * Interface between client <-> game and client calculations.
  *
  * =======================================================================
- */ 
+ */
 
 #include "../header/local.h"
 #include "../monster/player.h"
@@ -76,11 +76,11 @@
 /*
  * QUAKED info_player_intermission (1 0 1) (-16 -16 -24) (16 16 32)
  * The deathmatch intermission point will be at one of these
- * Use 'angles' instead of 'angle', so you can set pitch or 
+ * Use 'angles' instead of 'angle', so you can set pitch or
  * roll as well as yaw.  'pitch yaw roll'
  */
 void
-SP_info_player_intermission(void)
+SP_info_player_intermission(edict_t *ent)
 {
 }
 
@@ -89,7 +89,7 @@
 void
 player_pain(edict_t *self, edict_t *other, float kick, int damage)
 {
-       /* player pain is handled at the 
+       /* player pain is handled at the
           end of the frame in P_DamageFeedback */
 }
 
@@ -521,7 +521,7 @@
        memset(self->client->pers.inventory, 0, 
sizeof(self->client->pers.inventory));
 
        if (self->health < -40)
-       {   
+       {
                /* gib */
                gi.sound(self, CHAN_BODY, gi.soundindex(
                                                "misc/udeath.wav"), 1, 
ATTN_NORM, 0);
@@ -586,7 +586,7 @@
 /* ======================================================================= */
 
 /*
- * This is only called when the game 
+ * This is only called when the game
  * first initializes in single player,
  * but is called after each death and
  * level change in deathmatch
@@ -731,7 +731,7 @@
 }
 
 /*
- * go to a random point, but NOT the two 
+ * go to a random point, but NOT the two
  * points closest to other players
  */
 edict_t *
@@ -824,7 +824,7 @@
                return bestspot;
        }
 
-       /* if there is a player just spawned on 
+       /* if there is a player just spawned on
           each and every start spot we have no
           choice to turn one into a telefrag meltdown */
        spot = G_Find(NULL, FOFS(classname), "info_player_deathmatch");
@@ -880,7 +880,7 @@
                }
 
                if (Q_stricmp(game.spawnpoint, target) == 0)
-               {   
+               {
                        /* this is a coop spawn point for one of the clients 
here */
                        index--;
 
@@ -942,7 +942,7 @@
                if (!spot)
                {
                        if (!game.spawnpoint[0])
-                       {   
+                       {
                                /* there wasn't a spawnpoint without a target, 
so use any */
                                spot = G_Find(spot, FOFS(classname), 
"info_player_start");
                        }
@@ -1062,7 +1062,7 @@
 /* ============================================================== */
 
 /*
- * Called when a player connects 
+ * Called when a player connects
  * to a server or respawns in
  * a deathmatch.
  */
@@ -1225,7 +1225,7 @@
        }
 
        if (!KillBox(ent))
-       {   
+       {
                /* could't spawn in? */
        }
 
@@ -1237,7 +1237,7 @@
 }
 
 /*
- * A client has just connected to 
+ * A client has just connected to
  * the server in deathmatch mode,
  * so clear everything out before
  * starting them.
@@ -1288,13 +1288,13 @@
                return;
        }
 
-       /* if there is already a body waiting for 
+       /* if there is already a body waiting for
           us (a loadgame), just take it, otherwise
           spawn one from scratch */
        if (ent->inuse == true)
        {
-               /* the client has cleared the client side viewangles upon 
-                  connecting to the server, which is different than the 
+               /* the client has cleared the client side viewangles upon
+                  connecting to the server, which is different than the
                   state when the game is saved, so we need to compensate
                   with deltaangles */
                for (i = 0; i < 3; i++)
@@ -1305,7 +1305,7 @@
        }
        else
        {
-               /* a spawn point will completely reinitialize the entity 
+               /* a spawn point will completely reinitialize the entity
                   except for the persistant data that was initialized at
                   ClientConnect() time */
                G_InitEdict(ent);
@@ -1513,9 +1513,9 @@
 
 edict_t *pm_passent;
 
-/* 
+/*
  * pmove doesn't need to know about
- * passent and contentmask 
+ * passent and contentmask
  */
 trace_t
 PM_trace(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end)
@@ -1727,7 +1727,7 @@
        client->buttons = ucmd->buttons;
        client->latched_buttons |= client->buttons & ~client->oldbuttons;
 
-       /* save light level the player is 
+       /* save light level the player is
           standing on for monster sighting AI */
        ent->light_level = ucmd->lightlevel;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quake2-ctf-1.07/src/player/weapon.c 
new/quake2-ctf-1.08/src/player/weapon.c
--- old/quake2-ctf-1.07/src/player/weapon.c     2020-02-24 17:01:11.000000000 
+0100
+++ new/quake2-ctf-1.08/src/player/weapon.c     2021-06-14 16:33:32.000000000 
+0200
@@ -33,10 +33,12 @@
 void weapon_grenade_fire(edict_t *ent, qboolean held);
 
 void
-P_ProjectSource(gclient_t *client, vec3_t point, vec3_t distance,
+P_ProjectSource(edict_t *ent, vec3_t distance,
                vec3_t forward, vec3_t right, vec3_t result)
 {
-       vec3_t _distance;
+       gclient_t *client = ent->client;
+       float     *point  = ent->s.origin;
+       vec3_t     _distance;
 
        VectorCopy(distance, _distance);
 
@@ -50,6 +52,21 @@
        }
 
        G_ProjectSource(point, _distance, forward, right, result);
+
+       // Berserker: fix - now the projectile hits exactly where the scope is 
pointing.
+       if (aimfix->value)
+       {
+               vec3_t start, end;
+               VectorSet(start, ent->s.origin[0], ent->s.origin[1], 
ent->s.origin[2] + ent->viewheight);
+               VectorMA(start, 8192, forward, end);
+
+               trace_t tr = gi.trace(start, NULL, NULL, end, ent, MASK_SHOT);
+               if (tr.fraction < 1)
+               {
+                       VectorSubtract(tr.endpos, result, forward);
+                       VectorNormalize(forward);
+               }
+       }
 }
 
 /*
@@ -659,7 +676,7 @@
 
        VectorSet(offset, 8, 8, ent->viewheight - 8);
        AngleVectors(ent->client->v_angle, forward, right, NULL);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
 
        timer = ent->client->grenade_time - level.time;
        speed = GRENADE_MINSPEED + (GRENADE_TIMER -
@@ -848,7 +865,7 @@
 
        VectorSet(offset, 8, 8, ent->viewheight - 8);
        AngleVectors(ent->client->v_angle, forward, right, NULL);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
 
        VectorScale(forward, -2, ent->client->kick_origin);
        ent->client->kick_angles[0] = -1;
@@ -913,7 +930,7 @@
        ent->client->kick_angles[0] = -1;
 
        VectorSet(offset, 8, 8, ent->viewheight - 8);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
        fire_rocket(ent, start, forward, damage, 650, damage_radius, 
radius_damage);
 
        /* send muzzle flash */
@@ -966,7 +983,7 @@
        AngleVectors(ent->client->v_angle, forward, right, NULL);
        VectorSet(offset, 24, 8, ent->viewheight - 8);
        VectorAdd(offset, g_offset, offset);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
 
        VectorScale(forward, -2, ent->client->kick_origin);
        ent->client->kick_angles[0] = -1;
@@ -1200,7 +1217,7 @@
        VectorAdd(ent->client->v_angle, ent->client->kick_angles, angles);
        AngleVectors(angles, forward, right, NULL);
        VectorSet(offset, 0, 8, ent->viewheight - 8);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
        fire_bullet(ent, start, forward, damage, kick,
                        DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD,
                        MOD_MACHINEGUN);
@@ -1367,8 +1384,7 @@
                r = 7 + crandom() * 4;
                u = crandom() * 4;
                VectorSet(offset, 0, r, u + ent->viewheight - 8);
-               P_ProjectSource(ent->client, ent->s.origin, offset,
-                               forward, right, start);
+               P_ProjectSource(ent, offset, forward, right, start);
 
                fire_bullet(ent, start, forward, damage, kick,
                                DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD,
@@ -1427,7 +1443,7 @@
        ent->client->kick_angles[0] = -2;
 
        VectorSet(offset, 0, 8, ent->viewheight - 8);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
 
        if (is_quad)
        {
@@ -1487,7 +1503,7 @@
        ent->client->kick_angles[0] = -2;
 
        VectorSet(offset, 0, 8, ent->viewheight - 8);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
 
        if (is_quad)
        {
@@ -1573,7 +1589,7 @@
        ent->client->kick_angles[0] = -3;
 
        VectorSet(offset, 0, 7, ent->viewheight - 8);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
        fire_rail(ent, start, forward, damage, kick);
 
        /* send muzzle flash */
@@ -1663,7 +1679,7 @@
        ent->client->v_dmg_time = level.time + DAMAGE_TIME;
 
        VectorSet(offset, 8, 8, ent->viewheight - 8);
-       P_ProjectSource(ent->client, ent->s.origin, offset, forward, right, 
start);
+       P_ProjectSource(ent, offset, forward, right, start);
        fire_bfg(ent, start, forward, damage, 400, damage_radius);
 
        ent->client->ps.gunframe++;

Reply via email to