Commit Graph

89 Commits

Author SHA1 Message Date
Yamagi a91b12a4af
Merge pull request #28 from devnexen/build_macos_arm_fix
Forcing proper native arch build on darwin mainly due to arm64.
2022-05-20 12:49:33 +02:00
David CARLIER 8e5d49e8f4 Forcing proper native arch build on darwin mainly due to arm64. 2022-05-14 16:25:51 +01:00
Yamagi 9757d6fffc
Merge pull request #23 from VortexAcherontic/master
Multiple gameplay fixes
2021-07-23 09:10:14 +02:00
Vortex Acherontic f28a561788 Fixed visor not working 2021-07-18 16:29:58 +02:00
Vortex Acherontic fc2961df12 #1 Fixed viper bomb not killing monster_tank in zbase1 2021-07-18 15:41:33 +02:00
Vortex Acherontic d4b76a5326 #2 Fixed insane marine not killed by explosion 2021-07-18 15:35:10 +02:00
Vortex Acherontic 023b41606e Removed unused import 2021-07-17 22:44:03 +02:00
Vortex Acherontic 24cdf52a89 Fixed TripBomb not inflicting damage 2021-07-17 22:42:25 +02:00
Yamagi 7dae34726f
Merge pull request #22 from BjossiAlfreds/player-sounds
Fix for some player sound bugs
2021-04-30 11:51:24 +02:00
BjossiAlfreds e817bd38b9 Fix for some player sound bugs 2021-04-30 01:05:25 +00:00
Yamagi df64f864b7
Merge pull request #21 from BjossiAlfreds/shark-bbox
Shark bbox fix and added inuse check after entity thinking
2021-04-27 08:59:13 +02:00
Yamagi 7d3ee75e3b
Merge pull request #20 from devnexen/upd_to_levelup_with_main_repo
little update to level up with the other repositories.
2021-04-27 08:58:54 +02:00
BjossiAlfreds 8f6c53e76f Shark bbox fix and added inuse check after entity thinking 2021-04-18 01:19:32 +00:00
David CARLIER 88a569d532 little update to level up with the other repositories. 2021-04-13 17:48:57 +01:00
Yamagi 09d5857687
Merge pull request #19 from devnexen/savegame_data_packing
game data packing representation of the headers
2021-04-08 10:42:04 +02:00
Yamagi 4b542f0e57
Merge pull request #18 from BjossiAlfreds/map-fixes
Fixed unspawnable monsters in three maps
2021-04-08 10:41:39 +02:00
David Carlier 4e97fe4c74 game data packing representation of the headers 2021-04-07 18:10:53 +01:00
BjossiAlfreds f4faa12db3 Fixed unspawnable monsters in three maps 2021-04-07 12:33:06 +00:00
Yamagi f3912680ac
Merge pull request #16 from 0lvin/master
Fix compiler warnings
2021-01-27 08:28:07 +01:00
Denis Pauk c88b0c1a9a Fix function prototypes 2021-01-26 20:55:54 +02:00
Denis Pauk fda7c543b8 Fix compiler warnings
src/g_items.c:2869:6: warning: variable ‘index’ set but not used [-Wunused-but-set-variable]
src/g_phys.c:535:10: warning: variable ‘mins’ set but not used [-Wunused-but-set-variable]
src/g_phys.c:535:16: warning: variable ‘maxs’ set but not used [-Wunused-but-set-variable]
src/g_spawn.c:575:6: warning: variable ‘oldmaxent’ set but not used [-Wunused-but-set-variable]
src/g_target.c:537:6: warning: variable ‘effect’ set but not used [-Wunused-but-set-variable]
src/monster/boss2/boss2.c:564:11: warning: variable ‘enemy_infront’ set but not used [-Wunused-but-set-variable]
src/monster/boss3/boss31.c:601:8: warning: variable ‘range’ set but not used [-Wunused-but-set-variable]
src/monster/boss3/boss31.c:650:11: warning: variable ‘enemy_infront’ set but not used [-Wunused-but-set-variable]
src/monster/boss3/boss32.c:678:8: warning: variable ‘range’ set but not used [-Wunused-but-set-variable]
src/monster/boss3/boss32.c:811:11: warning: variable ‘enemy_infront’ set but not used [-Wunused-but-set-variable]
src/monster/boss/boss.c:797:8: warning: variable ‘length’ set but not used [-Wunused-but-set-variable]
src/player/hud.c:167:7: warning: variable ‘picnum’ set but not used [-Wunused-but-set-variable]
2021-01-26 20:24:31 +02:00
Daniel Gibson 7275a593a6 Fix architecture detection on Windows in Makefile, bump SAVEGAMEVER
.. and use YQ2ARCH and YQ2OSTYPE instead of just ARCH and OSTYPE
for the defines, so it's consistent with the engine and xatrix+rogue.

$PROCESSOR_ARCHITECTURE seems to contain the architecture of the host,
but we need the architecture the current MinGW shell is targeting.
$MINGW_CHOST seems to be just that, and on my system it's either
i686-w64-mingw32 (mingw32.exe) or x86_64-w64-mingw32 (mingw64.exe)
(No idea what it looks like for Windows on ARM...)

As fixing this would otherwise break existing savegames, I bumped the
SAVEGAMEVER to "YQ2-4" and added a quirk for older savegameversions:
On Windows i386 savegames that contain "AMD64" instead of "i386" as
architecture are also accepted.
(For YQ2-1 this didn't seem necessary, apparently "i386" was hardcoded)
2021-01-14 03:53:47 +01:00
Yamagi 40fb2366d1
Merge pull request #14 from Soldy/master
error during compiling the code #13
2020-06-02 08:47:38 +02:00
Soldy 06b54182b7 error during compiling the code #13
Signed-off-by: Soldy <4786022+Soldy@users.noreply.github.com>
2020-05-30 18:22:15 +01:00
Yamagi 6276ba483f
Merge pull request #12 from mjr4077au/Client_AimFixWithCVAR
Implement accurate-aiming CVAR in zaero game code.
2020-04-21 12:48:45 +02:00
Yamagi a047746337
Merge pull request #11 from NeonKnightOA/cppcheckfixes
Fixed many issues pointed out by cppcheck.
2020-04-21 12:48:32 +02:00
Mitchell Richters 82240af227 Implement accurate-aiming CVAR in zaero game code. 2020-04-21 08:02:29 +10:00
NeonKnightOA 3b53b244e6 Fixed: Function 'LerpAngle' argument order different: declaration 'a1, a2, frac' definition 'a2, a1, frac' 2020-02-04 12:48:33 -03:00
NeonKnightOA 3369a24f77 Fixed many issues pointed out by cppcheck.
Fixed the following issues found by cppcheck:

```
[src\g_func.c:576] (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other. [nullPointerRedundantCheck]

[src\g_func.c:1500] (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other. [nullPointerRedundantCheck]

[src\g_func.c:1931] (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other. [nullPointerRedundantCheck]

[src\g_func.c:2623] (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other. [nullPointerRedundantCheck]

[src\g_misc.c:156] (warning) Identical condition '!self', second condition is always false [identicalConditionAfterEarlyExit]

[src\g_misc.c:337] (warning) Identical condition '!self', second condition is always false [identicalConditionAfterEarlyExit]

[src\g_phys.c:1109] (warning) Either the condition '!ent' is redundant or there is possible null pointer dereference: ent. [nullPointerRedundantCheck]

[src\g_spawn.c:372] (style) Defensive programming: The variable 'i' is used as an array index before it is checked that is within limits. This can mean that the array might be accessed out of bounds. Reorder conditions such as '(a[i] && i < 10)' to '(i < 10 && a[i])'. That way the array will not be accessed if the index is out of limits. [arrayIndexThenCheck]

[src\g_spawn.c:309] (warning) Identical condition '!ent', second condition is always false [identicalConditionAfterEarlyExit]

[src\g_utils.c:30] (warning) Identical condition '!from', second condition is always false [identicalConditionAfterEarlyExit]

[src\g_utils.c:69] (warning) Identical condition '!from', second condition is always false [identicalConditionAfterEarlyExit]

[src\monster\boss\boss.c:420] (warning) Either the condition '!self' is redundant or there is possible null pointer dereference: self. [nullPointerRedundantCheck]

[src\monster\boss\boss.c:749] (warning) Either the condition '!self' is redundant or there is possible null pointer dereference: self. [nullPointerRedundantCheck]

[src\monster\boss\boss.c:1032] (warning) Either the condition '!ent' is redundant or there is possible null pointer dereference: ent. [nullPointerRedundantCheck]

[src\monster\misc\move.c:437] (style) Condition '!enemy' is always false [knownConditionTrueFalse]

[src\player\client.c:529] (style) Condition 'attacker' is always true [knownConditionTrueFalse]

[src\player\client.c:529] (style) Condition 'inflictor' is always true [knownConditionTrueFalse]

[src\player\view.c:893] (warning) Either the condition '!ent' is redundant or there is possible null pointer dereference: ent. [nullPointerRedundantCheck]

[src\shared\shared.c:1160] (warning) Opposite inner 'if' condition leads to a dead code block (outer condition is '*s' and inner condition is '!*s'). [oppositeInnerCondition]

[src\shared\shared.c:1225] (warning) Opposite inner 'if' condition leads to a dead code block (outer condition is '*s' and inner condition is '!*s'). [oppositeInnerCondition]

[src\shared\shared.c:1303] (warning) Either the condition '!value' is redundant or there is possible null pointer dereference: value. [nullPointerRedundantCheck]

[src\zaero\acannon.c:431] (warning) Either the condition '!self' is redundant or there is possible null pointer dereference: self. [nullPointerRedundantCheck]

[src\zaero\ai.c:107] (warning) Either the condition '!self' is redundant or there is possible null pointer dereference: self. [nullPointerRedundantCheck]
```

Only these two are missing, I haven't figured out what should I do:
```
[src\monster\misc\move.c:650] (style) Condition 'rand()&(7==1)' is always false [knownConditionTrueFalse]

[src\zaero\mtest.c:506] (error) Resource leak: wCfgFile [resourceLeak]
```
2020-02-04 12:27:41 -03:00
Yamagi c49cb3982d
Merge pull request #9 from NeonKnightOA/pvsfixes
Adding struct checks to files. This solves countless of issues and bugs.
2020-02-04 09:27:34 +01:00
NeonKnightOA dae4e2c537 Adding struct checks to files. This solves countless of issues and bugs. 2020-02-03 12:51:22 -03:00
Yamagi 8236760dfd
Merge pull request #8 from NeonKnightOA/skills
Easier handling of skill levels by using defines instead of numbers
2020-01-30 18:36:21 +01:00
NeonKnightOA 72c6681746 Oops... forgot the header. Sorry! 2020-01-29 14:14:27 -03:00
NeonKnightOA afc3c22b84 Easier handling of skill levels by using defines instead of numbers 2020-01-22 13:42:15 -03:00
Yamagi efc0e1b1fe
Merge pull request #5 from Pickle/master
Added cmake support
2019-05-09 18:36:44 +02:00
Yamagi Burmeister 47010478bc Fix missmerge, ReadField() may only be called once for each field. 2019-02-05 09:10:31 +01:00
Yamagi Burmeister 511db03dfc Fix clang warnings, abs() may not be used for floats. 2019-02-04 13:31:11 +01:00
Yamagi Burmeister 7bb26be80c Port compiler detection from the other addons.
This is done to keep the Makefiles more or less in sync.
2019-02-04 13:29:44 +01:00
Yamagi Burmeister 4bdd8facd5 Merge outstanding savegame changes from yquake.
- Switch from an whitelist base approach regarding platforms and systems
  to an blacklist approach. This is savegame version 2.
- Fix coop_respan struct not fully initialized after savegame load while
  running in coop mode. This is savegame version 3.

Support for savegame version 2 was added to keep the divergence between
zaero and the other addons low.
2019-02-04 13:24:13 +01:00
Scott 0126a7f93a Added cmake support 2018-12-15 16:29:25 -05:00
Daniel Gibson 4e031fe308 Switch to Enforcers bloody skin when he's killed
When killing the enforcer with one shot (instead of damaging him first
without killing, which will switch to the bloody skin), the skin wasn't
changed. Now it is.
2018-10-03 17:49:07 +02:00
Daniel Gibson 61b100d096 Fix Windows build 2016-02-20 20:42:20 +01:00
Daniel Gibson ac084046a8 Fix Windows detection in makefile for MinGW 2016-02-20 20:34:31 +01:00
Daniel Gibson b0f4627044 coop spawnpoint fix from other addons 2016-02-20 20:29:38 +01:00
Daniel Gibson 2bcbd86a61 A few fixes from q2dos 2016-02-20 18:20:20 +01:00
Daniel Gibson 3fabd3c09c remove (unused) q_shared.h
header/shared.h is used instead
2016-02-20 18:19:57 +01:00
Daniel Gibson 469c53e03e Reset gibsthisframe and lastgibframe at map change
ported de5849caf534c5c687bcfcd9f5951e3a62da3fd7 from yquake2 to zaero
2016-02-20 17:46:14 +01:00
Daniel Gibson 0822b94db9 Fixed some crashes during gameplay and loading; broke savegame compat
I added more missing fields to savegame/tables/fields.h and reordered
everything to make missing fields easier to find.
This broke savegame compatibility, and that might happen again.
I hope I'll remember to bump the savegame version before merging this
branch to master.

I also got segfaults (e.g. when a door was blocked by a corpse) in
G_UseTargets() because activator was NULL.

And in g_cmds.c there was a typo in OnSameTeam() - from the relatively
recent fix. No idea why, it doesn't exist in the other addons..
2015-06-29 18:11:12 +02:00
Daniel Gibson 0e4e1b7285 Fix crashes when loading savegame
savegame/tables/fields.h was missing some fields with FFL_NOSPAWN
and FFL_NOSPAWN handling in g_spawn.c was missing

Because of that after loading a savegame some pointers were invalid
and dereferencing them resulted in segfaults.
2015-05-19 04:19:41 +02:00
Daniel Gibson aa5ccc1770 Fix bug with high velocities in vents in 32bit builds, fix MingW build
See https://github.com/yquake2/yquake2/issues/71
and https://github.com/yquake2/xatrix/issues/4

In ClientThink(), the float value ent->velocity[i]*8 is saved into
a short and if the value is too big for a short, in 32bit gcc builds
the short is set to SHRT_MIN, resulting in the player being pressed
down instead of up.
Now we put the result in a 32bit int first (which should be big enough)
and assign the int to the short. This still overflows, but with -fwrapv
at least in a defined way (most probably the same way the original
binaries did).

The Makefile now sets $CC to gcc for MingW builds, this should fix
https://github.com/yquake2/xatrix/issues/3

And while I was at it, when the game lib is loaded, it prints the date
it was built, this is especially interesting for our Win32 binaries.
2015-05-17 18:48:21 +02:00