Marco Cawthorne
38f6996940
PMove: Fix typos that caused shenanigans.
2022-05-12 20:42:09 -07:00
Marco Cawthorne
6653d18417
Forgot to add these files (NSClient/Player/Spectator)
2022-05-11 13:18:02 -07:00
Marco Cawthorne
25c54af62c
Spring cleaning part one.
2022-05-11 12:49:04 -07:00
Marco Cawthorne
a039a69dd3
Ultimately remove the deprecated old class names for base entities.
2022-05-10 15:01:40 -07:00
Marco Cawthorne
77c3cf4e10
Further fixes for OpenXR
2022-05-08 11:28:33 -07:00
Marco Cawthorne
9e0f93c796
Initial support for OpenXR. Remember to side-load the openxr plugin and set _pext_vrinputs to 1.
2022-05-07 17:58:22 -07:00
Marco Cawthorne
17611b7d38
PMove: Move some things around a bit.
2022-05-01 22:04:40 -07:00
Marco Cawthorne
70c2b43ff3
PMove: check for infokey 'autojump'...
2022-05-01 19:44:22 -07:00
Marco Cawthorne
594261cf7a
PMove: change default view offset to [0,0,28]
2022-05-01 15:57:10 -07:00
Marco Cawthorne
e64e72d155
env_bubbles: Implementation. Should be complete.
...
NSIO: Add methods ReadBool(), SaveBool(), and PREDICTED_BOOL macro.
2022-04-30 20:18:56 -07:00
Marco Cawthorne
cdfae26413
ambient_generic: Restructure and network more efficiently.
...
Client: add support for modelevent 1008 (CHAN_VOICE sound) and 1005 (plays Sentence)
2022-04-30 14:02:25 -07:00
Marco Cawthorne
92826b3e5a
Deprecate FL_NOATTACK, replace it with FL_FAKESPEC.
2022-04-28 16:25:51 -07:00
Marco Cawthorne
ade1deb910
Revert "base_player: MakeTempSpectator() will now null think and nextthink."
...
This reverts commit 0c802295c3
.
2022-04-28 14:52:38 -07:00
Marco Cawthorne
0c802295c3
base_player: MakeTempSpectator() will now null think and nextthink.
2022-04-28 12:34:01 -07:00
Marco Cawthorne
70f32c97a4
NSVehicle: Add method CanDriverCrouch() to deal with player physics restrictions.
2022-04-27 15:03:00 -07:00
Marco Cawthorne
2e43e671a4
Base_Player: Network movetype and solid together.
2022-04-26 14:10:17 -07:00
Marco Cawthorne
9030ad82d9
Base_Player: Make sure disconnected clients get removed from other clients.
...
Menu-FN: Clear Rich-presence when no longer in a game.
2022-04-26 11:22:12 -07:00
Marco Cawthorne
2d403202b9
Avoid use of infokeys to communicate whether or not a client is spectating.
2022-04-25 15:25:35 -07:00
Marco Cawthorne
607194957e
Player: Move UseUp/Down into the base_player class. Should now universally handle un-presses for all games.
2022-04-25 10:19:17 -07:00
Marco Cawthorne
7395b8d421
Gamerules: exception for friendlyfire when it comes to self
...
point_message: make messages appear through entities, as they may be translucent.
Fixed a minor warning.
2022-04-21 18:50:21 -07:00
Marco Cawthorne
af6412e283
Networking improvements to NSEntity, NSRenderableEntity and NSSurfacePropEntity
2022-04-20 14:29:37 -07:00
Marco Cawthorne
8e15f04c38
prop_physics_multiplayer: Initial implementation. Developed with the ODE plugin in mind.
2022-04-20 10:44:59 -07:00
Marco Cawthorne
bf00bfa60c
spectator: Several fixes to make spectating a bit more polished. Ignore fakespectators entirely, etc.
2022-04-18 15:53:15 -07:00
Marco Cawthorne
a469c06fc8
Add 'surfaceparm projectile' support, so non-solid surfaces can
...
still react to tracelines and projectiles.
2022-04-13 16:58:42 -07:00
Marco Cawthorne
1b2f587599
Shared: Deprecate ClientRemove() over OnRemoveEntity, which will work on both Client and Server.
...
prop_vehicle_drivable: Add minor collision boxes to aid player physics
Fix some warnings.
2022-04-12 23:48:31 -07:00
Marco Cawthorne
e79a2e9c2e
NSMonster: Add method bool CanCrouch(). Monsters will then attempt to crouch.
...
SoundDefs: Add support for distshader on Sound_PlayAt() calls.
2022-04-10 07:01:14 -07:00
Marco Cawthorne
6b1af093bb
NSMonster: use PMoveCustom_RunStandardPlayerPhysics instead of the engine, as it overrides
...
our hitcontentsmask. This is required for monster/bot clips.
Client: If an entity gets removed, ensure the .skeletonindex gets deleted.
2022-04-09 19:21:00 -07:00
Marco Cawthorne
2c79071514
base_player: MakeTempSectator() will now make sure modelindex of the target
...
is set to 0.
2022-04-08 12:58:23 -07:00
Marco Cawthorne
a8c8938408
NSEntity: New method CreatedByMap(). Additional work towards more vehicle related
...
code in preparation for WASTES.
2022-04-06 16:21:07 -07:00
Marco Cawthorne
60e4853549
Clean up some misc warnings, switch over to internal bool type for some methods
...
in NSSurfacePropEntity, added Get/Set functions for MaxHealth.
Also bump BUILD_ENGINEREVISION to 6224 (minor crash fix upstream)
2022-04-02 09:21:49 -07:00
Marco Cawthorne
e45987d65c
NSEntity: Added new methods based on GMod's API. More to follow.
2022-04-02 00:10:25 -07:00
Marco Cawthorne
8c3804a1bc
Make Client_InIntermission() a shared (Client/Server) function, add method 'InIntermission()' to CGameRules.
...
Tone down the intermission view movement, also tweak Spawn_SelectRandom() to find more points.
2022-03-29 15:20:52 -07:00
Marco Cawthorne
50312d500a
SurfaceProperties: Be more pedantic about what object can contain material
...
info in SurfData_Impact()
2022-03-28 19:01:29 -07:00
Marco Cawthorne
9e9d5b1832
env_fog_controller: Initial implementation. Fully shared entity, tested on
...
d2_coast_XX maps in Half-Life 2.
2022-03-23 11:05:35 -07:00
Marco Cawthorne
750bb413e9
prop_rope: Now a shared (client/server) entity instead of just client. Will
...
now respect parenting so you can have very dynamic rope attachments in
the world.
2022-03-22 16:38:31 -07:00
Marco Cawthorne
143a00e94e
Fix light_dynamic (static) from not spawning in CSQC. Add r_skipDiffuse to rtlight.glsl,
...
add SURF_PENETRATE, which will make bullets pass right through them when
BULLETPENETRATION is set. Go over and refactor a lot of base_client, player
and spectator code to facilitate both permanent and temporary spectators
better. Add experimental env_glow lens flare code. Fix material ID detection
bug for Q3 based BSPs. A couple helper functions were added to src/client/utils.cpp
but they are not yet final.
2022-03-17 21:05:47 -07:00
Marco Cawthorne
96f3a1224a
This is a massive change. Check the full msg here:
...
https://icculus.org/~marco/txt/nuclide_may2022.txt
2022-03-15 19:33:11 -07:00
Marco Cawthorne
ae85529f95
Add pmodel attributes to the base player class.
2022-03-13 17:01:18 -07:00
Marco Cawthorne
0fc52f726d
BotLib now responds to 'alert' flagged sounds as well. Also added a cooldown
...
timer so we don't call alerts too often.
2022-03-11 14:00:44 -08:00
Marco Cawthorne
6fb067eed3
My name has changed, so an update to the copyright to reflect it.
2022-03-11 11:40:43 -08:00
Marco Cawthorne
ce02de7eff
Physics_InputPostMove: Unset FROZEN _after_ physics frame...
2022-03-03 23:32:33 -08:00
Marco Cawthorne
d8a8f07432
Client: make sure customphysics is set 'Empty' on monsters, clients
2022-03-03 23:31:59 -08:00
Marco Cawthorne
93124fa6de
base_player: Add Death() method that'll let the client know when to render
...
the 'Deathcam'. Also add the mentioned UpdateDeathcam().
2022-03-02 20:37:40 -08:00
Marco Cawthorne
6db98c88aa
BotLib: Add support for goalitems. These may include objectives for things
...
like CTF - flag your game-mode entities as either .botinfo BOTINFO_TEAM_GOALITEM
or BOTINFO_TEAM_GOALCAPTURE and BotLib will try to figure out what to do.
2022-03-02 09:17:57 -08:00
Marco Cawthorne
ee2d3f6b3f
SoundDef: add 'pitch' support to Sound_PlayAt(), the pointsound builtin does
...
support pitch on FTEQW but it's not advertised in the extensions .qc
2022-03-02 09:14:02 -08:00
Marco Cawthorne
a687d7b330
Various tweaks to documentation inside the codebase, more verbose general
...
information prints to console to aid non-devs in sending bug reports and
finding other issues. Updates to some of the GLSL. Minor material fixes.
2022-02-23 01:17:05 -08:00
Marco Cawthorne
8cb4c35e23
Remove SendFlags with constants from NSEntity and peers, make full use
...
of EvaluateEntity() to decide which attributes to send network updates of.
2022-02-18 00:30:24 -08:00
Marco Cawthorne
1d9ade7319
NSEntity: Add ClientRemove() method so sub-classes can control what happens
...
when a SSQC ent representation is removed from the client.
prop_vehicle_drivable: All sorts of tweaks, lots subject to change.
VGUI elements now get a callback when the resolution gets resized, so they
get a chance to reposition themselves.
Deprecate function ClientGame_EntityRemove().
2022-02-17 22:16:35 -08:00
Marco Cawthorne
bcf9e2e758
Cleaning up some warnings.
2022-02-01 13:37:21 -08:00
Marco Cawthorne
eb3eb567ca
Shared: nil out the base_client predraw. Get rid of the .pitch attribute of
...
base_player. Fix some angle networking typos.
2022-02-01 09:33:28 -08:00
Marco Cawthorne
a3a5f9d626
Client: Some fixes for handling player/spectator classes, both share now the
...
same parent class on both client and server. Fix crash with spectators and
input-frame overrides. Add 'additive' command to fontdefs.
2022-01-31 17:38:01 -08:00
Marco Cawthorne
e11465018f
Client: Allow base_player and spectator classes to override CSQC_Input_Frame
...
with a new method: ClientInputFrame.
2022-01-31 15:31:07 -08:00
Marco Cawthorne
578da4a779
Add VGUI_Active() which returns whether or not we're drawing VGUI elements,
...
add SNDFL_ALERTS to sound shaders, which will alert enemy AI of suspicious
behaviour, fix a health-setting bug in NSSurfacePropEntity and remove
playerslot check in item_pickup from base/
2022-01-28 16:02:00 -08:00
Marco Cawthorne
2c80a9f9ff
NSSurfaceProp/PropData: Add support for breakable_skin. When a prop 'dies'
...
it doesn't necessarily have to disappear, it can change its material to one
of your choosing.
2022-01-28 06:53:32 +01:00
Marco Cawthorne
06d07738b6
Clean up the base classes, get rid of having to manually include the entbase
...
defs.h for the respective progs.
2022-01-20 16:23:29 -08:00
Marco Cawthorne
9e2b89e386
NSEntity: BBox will now account for rotation whenever SetModel() is used.
2022-01-20 12:30:53 -08:00
Marco Cawthorne
02c2ff7be5
env_glow: Add 'rotate' key to rotate the sprite/material by X degree amount
2022-01-07 17:04:43 -08:00
Marco Cawthorne
52dfde0cf1
Sound: Add Sound_PlayLocal() which is a 'sound shader' analogue to to
...
localsound()
2022-01-07 13:46:16 -08:00
Marco Cawthorne
749424aa84
NSMonster: Add support for actions (used in e.g. HLMDL) to query which seq
...
to play. This will be expanded shortly in-engine to support more formats...
2022-01-06 19:27:08 -08:00
Marco Cawthorne
9d4d7afdcd
Big overhaul of momentary_door, momentary_rot_button... now onto the last
...
entity until Hazard Course is fully functional from beginning to end.
2022-01-04 21:54:42 -08:00
Marco Cawthorne
f2e44b24fb
Add platform/base_sound.pk3, move base sound shaders in there. Add misc/null
...
and misc/missing PCM samples for fallback.
2021-12-18 15:06:37 -08:00
Marco Cawthorne
6ec29e9985
SurfData_IDtoImpact: Fix IMPACT_METAL lookup
2021-12-17 21:23:30 -08:00
Marco Cawthorne
c2e4050bae
Replace CSQC_Parse_Damage with our own, add EV_DAMAGE. Make sure trigger_hurt
...
respects the 'damagetype' field. Add CSQC_UpdateSeat to make querying of
the current player seat easier (splitscreen).
2021-12-17 18:20:30 -08:00
Marco Cawthorne
8075616d6d
SurfaceProperties: We were missing a few material ID lookups for GoldSrc
...
regarding impacts.
2021-12-16 13:12:44 -08:00
Marco Cawthorne
bfad97f6eb
prop_dynamic: Remove redundant .health set code that's now handled in the
...
parent class.
PropData: Fix a bug that fails to check our cache properly, resulting in
the first entry being returned when no data is properly defined.
2021-11-21 04:23:33 +01:00
Marco Cawthorne
eb85121716
Add BUILD_ODE build.cfg setting. Add stubs for platform specific functions
...
like achievements, rich presense. Minor GLSL adjustments.
2021-11-20 17:27:52 +01:00
Marco Cawthorne
1e31ab2955
Following last commit, we allocate EFX data statically up-front too.
2021-11-15 03:59:39 +01:00
Marco Cawthorne
58734ec4d2
Improve VM memory usage by avoiding fragmentation in sound shaders and prop
...
data. Games can enable dynamic memory allocation by setting SOUNDSHADER_DYNAMIC
and PROPDATA_DYNAMIC in their progs.src
2021-11-15 03:46:59 +01:00
Marco Cawthorne
08c3a4a576
SurfData: Goodbye to DAMAGE_MATERIAL. We streamline that process now so
...
that all entities will use surfaceParm defined info by default unless
overriden by an entity. + Set up sane defaults for surface properties.
2021-11-13 01:38:20 +01:00
Marco Cawthorne
b670c994c1
build_engine.sh: Support building of HL2/SRC2004 content via the new plugin
...
that you can enable in build.cfg...
base_player: Add MakeTempSpectator() and MakePlayer(), so gamemodes have it
easier to handle in-game status changes...
NSRenderableEntity: Add support for 'modelscale' key
2021-11-09 17:33:16 +01:00
Marco Cawthorne
3bb88216c8
Add DAMAGE_MATERIAL as a possible .takedamage value, this may just be a
...
temp way for model based entities to communicate whether or not they use
that in-model surfaceflags.
2021-11-06 07:15:13 +01:00
Marco Cawthorne
aa0ccf4413
Add test_grenadeclip.
...
Add helper functions to convert RGB255 to ^x color codes.
Small fixes for fonts in vguilib.
2021-11-03 21:54:43 +01:00
Marco Cawthorne
d25a597d71
Player: SetSize() after the .flags field update in case their bbox changed
...
and we aren't running physics on their entity.
Viewmodels: Add cvar v_modellag (Default: 0)
2021-10-30 00:59:31 +02:00
Marco Cawthorne
5bf3545e69
GS-EntBase: Added a ton more Save/Restore functions for many core entities.
...
Player entity is also getting save/restored now.
2021-10-28 04:29:11 +02:00
Marco Cawthorne
98c234da48
SurfaceData: Non NSSurfacePropEntity class ents will just use the generic world check for impact effect lookup.
2021-10-27 03:06:29 +02:00
Marco Cawthorne
98d9f8f618
Sound: Convert legacy attenuations to Q unit radii upon parsing.
2021-10-23 13:45:59 +02:00
Marco Cawthorne
64eb0cc11d
PMove: Be more aggressive with our unstuck function.
2021-10-21 21:27:58 +02:00
Marco Cawthorne
249e4bc612
Massive revamp of the Nuclide system classes, more efficient networking
...
and memory usage thanks to intelligent boxing of fields.
Added Util_TimeToString, removed old VOX code, added lots of new helper
classes...
2021-10-20 01:19:10 +02:00
Marco Cawthorne
70fe95e5a7
Add support for Source styled surfaceproperties.txt definitions, which
...
is incorporated into func_breakable/pushable already. Mods can now control
material/surface properties without code.
2021-10-15 19:01:36 +02:00
Marco Cawthorne
d283c309cd
Add missing material/impact definition for sand. Document some other ids
...
of interest that are used in L4D and GO.
2021-10-11 23:29:26 +02:00
Marco Cawthorne
726332c78e
CBaseEntity: Add Ignite(), Exinguish(), IsOnFire() methods according to the
...
Source 2004 spec (controllable lifetimes etc.)
2021-10-04 13:22:40 +02:00
Marco Cawthorne
12753616df
Remove some left-over junk code that no longer runs
2021-09-30 23:32:47 +02:00
Marco Cawthorne
59ee0bd359
PMove: Pressing jump will now make you jump off the ladder, like in HL and
...
some other games.
2021-09-30 23:19:01 +02:00
Marco Cawthorne
2b377fdd79
Document the various CONTENTBITS that are relevant to us and reserve
...
a GRENADECLIP content bit, so levels can be optimised for nade throws.
2021-09-24 10:48:05 +02:00
Marco Cawthorne
565d8ad7e7
PMove: Add flag FL_ONUSABLE, which will tell us if we're looking/hovering
...
over something that we can +use on.
2021-09-23 01:01:59 +02:00
Marco Cawthorne
5439bfb59b
CBaseEntity: Mark some methods as nonvirtual, fix some regressions with
...
func_healthcharger/recharger, trigger_gravity
2021-09-22 20:56:20 +02:00
Marco Cawthorne
451beedb0c
CBasePhysics: add support for explosions upon destruction, provided via
...
propdata.
2021-09-21 21:11:02 +02:00
Marco Cawthorne
251713121c
PropData: Add support for the BreakModel info parsing. Any CBaseEntity can
...
now be augmented. prop_physics entities can already make use of them.
2021-09-21 20:33:09 +02:00
Marco Cawthorne
3bceff6a2c
Implement and parse the propdata system from Source 2004 and make our
...
func_breakable entity aware of it.
2021-09-17 19:31:22 +02:00
Marco Cawthorne
56e07c3f06
CGameRules: Add MonstersSpawn(), now game-modes can be queried for whether
...
or not monster entities spawn on init.
2021-09-16 21:16:37 +02:00
Marco Cawthorne
cba54d3e2b
Added crossprint, changed input_sequence from int to float as
...
it's now integrated into the engine, however as a float (blame DP)
2021-09-15 22:44:31 +02:00
Marco Cawthorne
81116646e4
Sound_Distance: Use pointsound, because the engine may do a funny
...
with channels and whatnot in the OpenAL backend. It works when
no entities are involved.
2021-09-12 01:17:26 +02:00
Marco Cawthorne
f884b3d35d
Separate networking between CBaseEntity and CBaseMonster, needs
...
cleaning.
2021-09-12 00:13:24 +02:00
Marco Cawthorne
10b2ff1fca
Add setorigin_safe(), which is just like setorigin but pushes
...
entities upwards out of the ground.
2021-09-12 00:12:55 +02:00
Marco Cawthorne
d94a5f33eb
GS-EntBase: Add prop_vehicle_driveable, for model based 4-wheel
...
vehicles.
2021-09-11 22:43:14 +02:00
Marco Cawthorne
5578b0e602
GS-EntBase: Add client-side prediction for func_tankmortar.
2021-09-08 20:17:13 +02:00
Marco Cawthorne
2a86794d67
Add precache_cubemap() to src/client/defs.h
2021-09-02 21:11:54 +02:00
Marco Cawthorne
8ba5bc56d2
Sound: Added 'distshader' keyword support... which will play a
...
another sound definition at global attenuation (explosions like this)
2021-09-02 10:10:27 +02:00
Marco Cawthorne
4a2cde56cc
Clean up pseudorandom() a bit.
2021-09-02 09:47:48 +02:00
Marco Cawthorne
9fa091db43
Reserve 3 SRC'04 rendermodes, implement RM_DONTRENDER.
2021-09-01 22:41:11 +02:00