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
+
+- 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
#
# 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++;