Commit graph

370 commits

Author SHA1 Message Date
Andrey Nazarov
213b14e16a Remove broken pusher delta yaw manipulation.
This didn't work correctly for multiple reasons:

1. `deltayaw` was wrongly initialized for the pusher itself, rather than
for pushed client.

2. `delta_angles[YAW]` is a short, adding plain `amove[YAW]` to it is
wrong.

To support yaw angle rotation properly, delta_angles must be
interpolated on the client. But this is hardly practical as it would
introduce other bugs. Thus, simply remove delta yaw manipulation code
altogether.

Fixes infamous Q2 bug when player standing on a blocked lift gets turned
to wrong direction.
2022-09-09 21:55:04 +03:00
Yamagi
2246a943bf
Merge pull request #93 from protocultor/cycleweap_quick
Faster weapon switching with 'cycleweap'
2022-08-07 18:22:14 +02:00
Jaime Moreira
6b9331ea5f Faster weapon switching with 'cycleweap'
Allows to skip elements on the weapon list by tapping the same bound key
2022-08-01 14:35:42 -04:00
Yamagi
7bf2454901
Merge pull request #92 from Dremor8484/Dremor8484-rogue-doublebarrelshotgun-aimfix
Update weapon.c
2022-06-11 17:04:04 +02:00
Dremor8484
6de4a9ce77
Update weapon.c
rogue-doublebarrelshotgun-aimfix
2022-06-10 19:19:18 +02:00
Yamagi
15ffab8518 Fix of by one in Info_SetValueForKey(). Found by ASAN. 2022-05-28 11:35:08 +02:00
Yamagi
1ca53f3118 Update CHANGELOG for 2.09. 2022-05-28 11:35:08 +02:00
Yamagi
43a5a3fc23 Normalize arm64 to aarch64.
This ensures that we call ARM64 `aarch64` on all platform, which aren't
MacOS or Windows. And it fixes the bug, that `arm64` was normalized to
`arm`, making incompatible savegames between 32 bit and 64 bit ARM
loadable. Leading to crashes.
2022-05-20 12:55:51 +02:00
Yamagi
ca5e278670
Merge pull request #91 from devnexen/build_macos_arm_fix
Forcing proper native arch build on darwin mainly due to arm64
2022-05-20 12:48:33 +02:00
David CARLIER
e7642db54d Forcing proper native arch build on darwin mainly due to arm64 2022-05-14 16:30:01 +01:00
Yamagi
c083b7c66c Add rmine1.ent, fixes a stuck monster.
Found and submitted by @Dremor8484, closes #90.
2022-05-10 18:50:56 +02:00
Yamagi
72a6f98730
Merge pull request #89 from protocultor/prefweap
Added prefweap command to select weapon by priority
2022-04-13 11:50:57 +02:00
Jaime Moreira
20da96d0ab Added prefweap command to select weapon by priority 2022-04-11 09:53:13 -04:00
Yamagi
f63c952103 Fix door_go_up(), G_UseTargets() exiting early if no activator is given.
The problem in door_go_up() may prevent doors from crushing something
blocking them. The problem in G_UseTargets() may prevent targets from
getting killed or fired.

Pointed out by @maraakate.
2022-02-05 17:26:19 +01:00
Yamagi
7d1007ea1e Force an MASK_SHOT clip mask for thrown heads.
The ThrowHead() and ThrowClientHead() functions are special. They
transform the entity given in `self` (mostly the caller itself) into a
ripped off head. They don't reset the entities clip mask, which may
cause problems in interactions with other entities. Fix that by reseting
the clip mask to `MASK_SHOT`.

Suggested by @BjossiAlfreds.
2022-02-05 17:25:42 +01:00
Yamagi
ee6164cbce
Merge pull request #88 from BjossiAlfreds/playernoise
Fixed player_noise entity leak and improved stability surrounding player noises
2021-11-06 08:48:21 +01:00
BjossiAlfreds
2dd8c74dfd Fixed player_noise entity leak and improved stability surrounding player noises 2021-11-06 02:23:45 +00:00
Yamagi
d272c24706 Fix soldiers never showing their pain skins as long as they're alive.
Since `self->helth` is set after calling `master_start()`
`self->max_health is always 0. Found by @drakonorodny and
analyzed by @BjossiAlfreds.
2021-11-05 07:15:10 +01:00
Yamagi
8cba5293a0 Made the game able to handle entity overload better.
This is a port of yquake2 commit c3b57bc8.
2021-11-04 17:11:41 +01:00
Yamagi
fb1ebf960e
Merge pull request #87 from BjossiAlfreds/rsewer2-rware2
Updated mapfixes for rsewer2 and rware2
2021-10-26 08:43:34 +02:00
BjossiAlfreds
222438d738 Updated mapfixes for rsewer2 and rware2 2021-10-25 11:21:07 +00:00
Yamagi
f90991db4d
Merge pull request #84 from De-Seppe/master
Feature request : add cvar to disable machine gun recoil in single player #741 (rogue)
2021-09-28 18:33:06 +02:00
De-Seppe
ea57b889b6 Rename variable to conform to naming guidelines
Change the name of the cvar machinegun_norecoil to g_machinegun_norecoil to conform to the naming guidelines
2021-09-27 18:30:18 +02:00
De-Seppe
73beecec44 Add cvar machinegun_norecoil
Add cvar machinegun_norecoil
This cvar allows to disable machinegun recoil in single player.
The default value is the original Quake 2 behaviour.
2021-09-27 13:14:38 +02:00
Yamagi
19a6d805a9 Refine the g_footstep cvar.
There were complains that always generating footsteps is annoying,
because there will be footsteps while swimming or jumping. Refine
the cvar a little bit:

* `0`: No footsteps at all.
* `1`: Vanilla Quake II behavior.
* `2`: Always footsteps as long as the player has a ground entity.
* `3`: Always footsteps.

The changes the meaning of the values, `2` has become `3`.

Closes yquake2/yquake2#738.
2021-08-25 18:39:09 +02:00
Yamagi
6cc225d670 Add a warning that the CMakeLists.txt is unmaintained. 2021-07-23 08:33:31 +02:00
Yamagi
6b6e536f79 Revert "Retire unmaintained CMakeLists.txt."
It turned out that there're some special cases not (yet) covered by the
Makefile. Crossbuilding in specialized chroot environments are one
example.
2021-07-23 08:30:59 +02:00
Yamagi
ab882a163f Retire unmaintained CMakeLists.txt.
I added the CMakeLists.txt 6 or 7 years ago so I could load the code
into Jetbrains Clion. I have moved to another editor years ago and the
cmake stuff is effectively unmaintained since then. We kept it around
in case that we'll do a MSVC port, but that's unlikely at this point.
Since bugreport and problems with the CMakeLists.txt keep coming up,
finally retire them. They can be resurrected from the git history if
we'll ever need them again.

Part of yquake2/yquake2#725.
2021-06-29 11:03:02 +02:00
Yamagi
397fdd77d5 Update the CHANGELOG for 2.08. 2021-06-14 16:29:07 +02:00
Yamagi
25b453f1b8
Merge pull request #83 from BjossiAlfreds/player-sounds
Fix for some player sound bugs
2021-04-30 11:51:40 +02:00
BjossiAlfreds
3bccc4bd79 Fix for some player sound bugs 2021-04-30 01:07:40 +00:00
Yamagi
98afa3a90d
Merge pull request #82 from BjossiAlfreds/shark-bbox
Shark bbox fix and added inuse check after entity thinking
2021-04-27 08:58:13 +02:00
BjossiAlfreds
d1ddda04ea Shark bbox fix and added inuse check after entity thinking 2021-04-18 01:27:18 +00:00
Yamagi
46362a3bb4
Merge pull request #81 from BjossiAlfreds/map-fixes
Map fixes for some rogue maps
2021-04-16 08:27:41 +02:00
BjossiAlfreds
cc6bf7dd5f killtarget monsters update killcounter correctly 2021-04-16 00:04:13 +00:00
BjossiAlfreds
e4a467e9c9 Added mapfixes for rammo1 2021-04-15 01:39:54 +00:00
BjossiAlfreds
503a8af5b2 Added mapfixes for rhangar2 and rware2 2021-04-15 01:02:21 +00:00
Yamagi
f0ebf1addc
Merge pull request #80 from devnexen/savegame_upd_to_match_yquake2
savegame to match more main repo
2021-04-13 12:58:31 +02:00
David CARLIER
a395fadf07 savegame to match more main repo 2021-04-12 21:35:20 +01:00
Yamagi
ce21ad2c16
Merge pull request #79 from devnexen/savegame_data_packing
game data packing representation of the headers
2021-04-08 11:00:03 +02:00
David Carlier
a000d06300 game data packing representation of the headers 2021-04-07 18:12:53 +01:00
Yamagi
9fd0bab374
Merge pull request #78 from BjossiAlfreds/bad-triggered
Console warning and fix triggered monsters with no targetname
2021-03-31 10:07:02 +02:00
BjossiAlfreds
a4fba01b97 Console warning and fix triggered monsters with no targetname 2021-03-28 17:00:26 +00:00
Yamagi
b0303c1098 Add a cvar g_footsteps to control the generation of footstep sound.
1: The Vanilla Quake II behaviour, footsteps are generated when the
   player is faster than 255.
0: Footstep sounds are never generated.
2: Footstep sounds are always generated.

Defaults to `1`
2021-03-02 15:20:43 +01:00
Yamagi
f2c4d1b0b0
Merge pull request #75 from 0lvin/master
Fix function prototypes
2021-01-27 08:31:50 +01:00
Denis Pauk
0d2d20fc6e Fix function prototypes 2021-01-26 21:20:39 +02:00
Daniel Gibson
b92383eff9 Fix architecture detection on Windows in Makefile, bump SAVEGAMEVER
$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-5" and added a quirk for older savegameversions:
On Windows i386 savegames that contain "AMD64" instead of "i386" as
architecture are also accepted.
(For YQ2-2 this didn't seem necessary, apparently "i386" was hardcoded)
2021-01-14 03:05:15 +01:00
Yamagi
e8f8a1309c Fix P_ProjectSource() forward declaration.
This was reported in yquake2#631.
2020-12-09 15:29:14 +01:00
Yamagi
9dfd9de811 Implemented coop_elevator_delay cvar (for func_plat)
In coop it's often hard to get on the same elevator together, because
they're immediately triggered once the first player steps on it.
This cvar sets a delay (1 second by default) for the elevator to wait
before moving, so other players have some time to get on it.
If you like elevators/platforms that suck, just set it to `0` :-P

Currently only used in func_plat, if it turns out that other entities
are used for automatically triggered platforms, we'll have to adapt
those as well (I guess wait_and_change() is generally useful for that).

We're not bumping the savegame version because they should only break in
an uncommon corner case: *Coop* savegames created with clients including
this change will not work on older clients - SP savegames are not
affected and old savegames on new clients also still work.
2020-08-10 14:22:31 +02:00
Yamagi
6820b0cad1 Add coop_pickup_weapons, allow a weapon to be taken several times.
In coop a weapon can be picked up only once. That's annoying, because in
coop ammunition is sparse and not getting the ammunition that comes with
a weapons make things worse. When `coop_pickup_weapons` is set to `1` a
weapon may be picked up if:

1) The player doesn't have the weapon in their inventory.
2) No other player has already picked it up.
2020-08-10 14:15:35 +02:00