Commit graph

280 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
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
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
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
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
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
BjossiAlfreds
3bccc4bd79 Fix for some player sound bugs 2021-04-30 01:07:40 +00:00
BjossiAlfreds
d1ddda04ea Shark bbox fix and added inuse check after entity thinking 2021-04-18 01:27:18 +00:00
BjossiAlfreds
cc6bf7dd5f killtarget monsters update killcounter correctly 2021-04-16 00:04:13 +00:00
David CARLIER
a395fadf07 savegame to match more main repo 2021-04-12 21:35:20 +01:00
David Carlier
a000d06300 game data packing representation of the headers 2021-04-07 18:12:53 +01: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
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
Yamagi
cfd660abc3 Fix the Jork skin bug.
Submitted for baseq2 by @kondrak in yquake2#575.
2020-05-11 12:53:43 +02:00
BjossiAlfreds
964895b760 Fix for gunner AI freeze bug 2020-05-08 22:14:44 +00:00
Yamagi
73fd162dbe Bring Makefile on par with yquake2:
* Make CFLAGS and LDFLAGS overrideable
* Correct architecture and operating system detection.
* Enforce FPU mode.
* Implement DEBUG.
* Pass LDFLAGS after the objects.
* Rename OSTYPE and ARCH to YQ2OSTYPE and YQ2ARCH to avoid collisions.
2020-04-21 13:56:47 +02:00
Yamagi
09f9cf8f61
Merge pull request #71 from BjossiAlfreds/printf-leftover
Removed leftover printf debug prints
2020-04-21 12:53:34 +02:00
BjossiAlfreds
0fc06c4fc9 Removed leftover printf debug prints 2020-04-21 00:44:13 +00:00
Mitchell Richters
95e432d604 Implement accurate-aiming CVAR in rogue game code. 2020-04-21 07:30:24 +10:00
Yamagi
e640c899c1
Merge pull request #68 from BjossiAlfreds/insta-powerups
Fix for some items playing wrong sound when instantly activated
2020-04-20 08:41:29 +02:00
Yamagi
03a7d77127
Merge pull request #67 from NeonKnightOA/turretfix
Fix: Turrets shooting faster while in melee range, which wasn't intended.
2020-04-20 08:41:10 +02:00
Yamagi
8dd1007284
Merge pull request #66 from NeonKnightOA/disguisefix
Fix: Disguise isn't traspassed between levels.
2020-04-20 08:40:11 +02:00
BjossiAlfreds
7e4fd68416 Fix for some items playing wrong sound when instantly activated 2020-04-11 00:46:48 +00:00
Yamagi
f0793d17f8 Change show_hostile from int to float and remove unnecessary casts.
In the vanilla code show_hostile was a qboolean what's clearly wrong.
For wome reasons I don't remember I changed it to an integer and added
the casts. This is problematic because show_hostile is derived from
level.time which is a float. The loss in precision broke some corner
cases like monsters becoming activated when they shouldn't.

Found, analyzed and reported by @BjossiAlfreds in yquake2/yquake2#525.
2020-03-10 10:18:21 +01:00
Yamagi
b5c39542d2 Limit the fix against black debris to gibs, debris, monsters.
Pushing all entities slightly away from non-horizontal may let items to
slide to unreachable locations, or let monsters getting stuck.

This is part of yquake2/xatrix#50
2020-02-22 15:30:18 +01:00
NeonKnightOA
7bf7eff184 Fix: Turrets shooting faster while in melee range, which wasn't intended. 2020-02-15 20:01:30 -03:00
NeonKnightOA
a1786d614e Fix: Disguise isn't traspassed between levels. 2020-02-15 18:43:14 -03:00
Yamagi
3b55fc311a Remove unnecessary code, expression is aways false.
CheckTeamDamage() always returns false, so the condition always
evaluates to false.
2020-02-08 17:07:33 +01:00
NeonKnightOA
83fe44691d Easier handling of skill levels by using defines instead of numbers 2020-01-22 12:37:33 -03:00
BjossiAlfreds
0642b6aa18 Fix mguard freeze bug and improvements to frame handling 2020-01-10 17:04:19 +00:00
Yamagi
f7b99b07c3
Merge pull request #59 from BjossiAlfreds/timeout-fix
Fix for insane marines not firing deathtarget right away
2020-01-05 10:09:39 +01:00
BjossiAlfreds
ff465863b9 Fix for insane marines not firing deathtarget right away 2020-01-02 23:33:16 +00:00
BjossiAlfreds
e04bd67aa3 Parasite blocked attack bugfix and dead code elimination 2020-01-01 21:50:07 +00:00
BjossiAlfreds
63d8755078 Rogue jump code fixes 2019-11-13 18:20:00 +00:00
Yamagi
6196f3fb9a
Merge pull request #52 from BjossiAlfreds/plane
Safely use plane normal in rest of touch functions
2019-10-07 18:58:42 +02:00
BjossiAlfreds
4c8d063a55 Added check for inuse to G_RunEntity that was missing but necessary 2019-10-03 18:18:29 +00:00
BjossiAlfreds
bcc451a817 Fixed double/quad sounds and monsters not always reacting to teslas 2019-10-03 17:31:20 +00:00
BjossiAlfreds
ab53f4d422 Small fix to remove plane check from tracker_touch 2019-10-03 16:04:54 +00:00