Commit Graph

400 Commits

Author SHA1 Message Date
Marco Cawthorne 7b42befcb3
Networked versions of func_conveyor, trigger_push. Bounce pads should be much nicer. 2023-03-18 17:49:12 -07:00
Marco Cawthorne 495b661b47
NSMoverEntity: Improvements so transformation and rotation is easier at the same time. 2023-03-14 00:06:19 -07:00
Marco Cawthorne c7709bb2d5
Add NSMoverEntity, a class that handles moving, pushing entity classes such as func_door and the like. 2023-03-13 19:12:54 -07:00
Marco Cawthorne faaf67762f
Platform: minor cleanup, updated fonts/ 2023-03-12 16:00:31 -07:00
Marco Cawthorne 23b671956f
Weapons_AddItem: Only count NSGameRules' MaxItemPerSlot() when we're adding a new weapon 2023-02-14 22:02:47 -08:00
Marco Cawthorne 86dfb3ff1a
Fix various compiler warnings. 2023-02-14 12:54:06 -08:00
Marco Cawthorne 8761b73e4a
NSGameRules: add some debug info for damage applications 2023-02-09 17:11:39 -08:00
Marco Cawthorne daf8512aa2
NSTalkMonster: Don't greet non-friendly players.
NSMonster: Improvements to alerting, turning and what to do when they lose their target.
NSInteractiveSurface: Unbreak it by allowing it to spawn in CSQC
Server: Spawn AI nodes for info_player_{start,deathmatch} when no real nodes are present
2023-02-06 16:41:19 -08:00
Marco Cawthorne 6aa3206d2b
Server: skip SV_RunClientCommand when our clients aren't fully initialized yet. 2023-01-23 00:12:35 -08:00
Marco Cawthorne fae4bc09e5
NSProjectile: some touchups in regards to the Spawned() method. 2023-01-18 17:33:09 -08:00
Marco Cawthorne 179a95088f
NSGameRules: Add overridable methods ImpulseCommand(NSClient, float) and PlayerRequestRespawn(NSClientPlayer).
Game_Input, the game specific function every game had to implement will be
deprecated to streamline the overall codebase. Migrate custom impulses into your gamerule overrides.
This will make it much easier to separate cheat impulse from the multiplayer game too.
2023-01-11 17:12:20 -08:00
Marco Cawthorne 1069468be1
Client: add cvar net_debugUpdates, to show which entity updates.
NSSurfacePropEntity: Add method: TimeSinceDeath()
Also further improvements to consistency of cvars, etc.
2023-01-08 13:18:57 -08:00
Marco Cawthorne 0ac1bc4b68
NSEntity: Add method CanSpawn(bool) which will be used to determine mainly if an entity is to be spawned on the client or server module (but it can also let a class handle under which other conditions it spawns)
NSEntity: move RestoreComplete() into NSIO because NSGameRules needs this.
2023-01-06 13:23:48 -08:00
Marco Cawthorne 2c5bf43c58
Fixed spectator inputs getting stuck and physics being run twice, due to the recent changes to SV_RunClientCommand. 2023-01-02 18:10:20 -08:00
Marco Cawthorne 4322f1fd93
GS-EntBase: prevent light entities from overriding the first built-in lightstyles.
worldspawn: Assign two more lightstyles that Half-Life registers.
2022-12-30 13:53:42 -08:00
Marco Cawthorne 27b0c26a12
Documentation improvements for platform, vgui etc. headers and files. 2022-12-30 00:15:10 -08:00
Marco Cawthorne 633046d28e
NSClient: Rename ClientInput() method in NSClient to ProcessInput(), as well as add SharedInputFrame() that can be overriden by the game. 2022-12-28 16:47:44 -08:00
Marco Cawthorne ce7cf4519f
Server: Set cvar s_nominaldistance to 1000 upon init. Dedicated server needs this to play sounds properly. 2022-12-28 15:15:30 -08:00
Marco Cawthorne 142d69b66a
Remove Game_RunClientCommand() entirely, as it will be replaced by a game-mode equivalent. 2022-12-22 16:54:11 -08:00
Marco Cawthorne ff7ce15399
SV_ParseClientCommand: Forgot to pass the default case over to clientcommand(). That is now fixed. 2022-12-22 16:29:02 -08:00
Marco Cawthorne 1acbd8a34d
Remove calls to Game_ParseClientCommand with per-gamemode overridable ClientCommand() method within NSGameRules.
Also redo the way chat messages are handled, so mods don't have to implement it themselves all the time.
2022-12-22 11:53:15 -08:00
Marco Cawthorne 2d911109cc
trigger_relay: Set m_iValue so that multisources will work properly that get targetted by them
trigger_auto: Delay the trigger of them in singleplayer until 1 player has joined
Misc cleanups. The 'Janitor Simulator' on TWHL should work now.
2022-12-14 16:51:16 -08:00
Marco Cawthorne 56ec44700a
Lots of cleanup related to many entity classes to aid doxygen with generating documentation. 2022-12-06 15:04:07 -08:00
Marco Cawthorne 74b61f35ed
Print a warning + backtrace when we manually call remove() on an entity that hasn't been destroyed properly. 2022-11-30 16:47:24 -08:00
Marco Cawthorne 29a1bea943
Misc consistency cleanups 2022-11-22 22:37:07 -08:00
Marco Cawthorne 5f126516c6
Server: Add new global g_dmg_vecLocation, which gives an approximate damage impact location. 2022-11-11 15:04:11 -08:00
Marco Cawthorne 298ba7a041
NSTraceAttack: offset decals a little when placing them near a wall so they don't count as inside of them on certain angles. 2022-11-10 17:21:56 -08:00
Marco Cawthorne 003bc5d88a
Removal of Footsteps_Update outside of NSClientPlayer. Mods now have the full ability to override steps within the player class. Method name subject to change. 2022-11-01 19:54:56 -07:00
Marco Cawthorne 843dcc8284
Kill src/client/player.qc. We now have overridable methods dedicated for updating player animations, attachments and more inside NSClientPlayer.
Some of these APIs are still subject to change but they're being deployed in TW 1.35 right now.
2022-11-01 19:12:40 -07:00
Marco Cawthorne 2945e1f65d
Add support for Source Engine decal groups (scripts/decals.txt). 2022-10-27 20:04:11 -07:00
Marco Cawthorne f01e90ad2e
Merge material property definitions into the surfaceproperties system to streamline
everything more and to allow level designers custom properties without recompiling
the game-logic. This will also make it more Source Engine compatible.
2022-10-15 22:43:32 -07:00
Marco Cawthorne db2d3b1730
Get rid of hlmaterials.qc by making the look-up happen fully within NSMaterial.qc as part of the newly unified material routines.
There's also a new file (hlmaterials.txt) that is subject to change which will allow you
to add many custom material definitions without hard-coding a thing. Which fixes conflicts between different GoldSrc games.
2022-10-15 20:32:40 -07:00
Marco Cawthorne 7ad6d9c457
Make games buildable again, caused by renaming Spraylogo and GameRules classes/files. 2022-10-14 15:49:59 -07:00
Marco Cawthorne e499a7d484
Documented the Nuclide System (NS) classes. 2022-10-14 13:08:47 -07:00
Marco Cawthorne d4ce7cb8c2
Documentation: started documenting all the functions in src/server/entry.qc 2022-10-10 12:30:31 -07:00
Marco Cawthorne 1bb1f03167
Tweak item_pickup/drop behaviour a little 2022-08-27 22:07:03 -07:00
Marco Cawthorne 517614fd37
Major overhaul that'll make savegames a lot better. Every entity we implement should have a Save/Restore function.
AI noes recalculates their route in case of a loaded savegame... And much more.
2022-08-10 14:24:06 -07:00
Marco Cawthorne 5ca96bbcd9
Add helpers across the codebase to deal with networking ents. I tried prototyped a more elegant solution the compiler didn't like - the language should really deal with this. 2022-08-07 14:12:55 -07:00
Marco Cawthorne ff17dea01f
Initial work towards the NSWeapon class. Testing will happen in base/ under the NEW_INVENTORY define.
Comitting this early to ensure nothing breaks and it'll co-exist.
2022-07-25 09:31:37 -07:00
Marco Cawthorne 197ce20c31
BotLib: Start making use of some of NSNavAI 2022-07-20 16:27:24 -07:00
Marco Cawthorne 2a220fb331
Move base classes out of gs-entbase. This evolution only happened because classes such as CBaseMonster that once existed were replaced and it grew from there.
Tweak g_developer prints for scripted_sequences.
2022-07-19 15:22:15 -07:00
Marco Cawthorne f6ecc97fca
Server: Ignore scripted_sequences when building nodes. This was a wrong assumption. 2022-07-18 11:39:57 -07:00
Marco Cawthorne 0ae901f5e1
NSMonster: Add InAnimation() method. Also prohibit movement when in an animation. 2022-07-18 09:22:18 -07:00
Marco Cawthorne 0d2e0627d4
Server: Added quick-and-dirty 'spawn' command. E.g. 'sv spawn monster_laidlaw' 2022-07-17 20:45:50 -07:00
Marco Cawthorne 878df0941e
Cleanup for some CGameRules method types. Moved some Util_ functions into their own file. 2022-07-16 15:11:33 -07:00
Marco Cawthorne c3be8002ad
add noref to g_mapcycle_override, to avoid an unnecessary compiler warning 2022-07-16 13:16:23 -07:00
Marco Cawthorne 220b424e33
Fix some misc Damage_Apply calls in really old parts of the code. Add more useful PlayerConnect/PlayerDisconnect methods into the base gamerules. 2022-07-14 18:04:11 -07:00
Marco Cawthorne 2735bd26f6
Server: Add cvar 'mp_foosteps', which only works in multiplayer. Hence the name. 2022-07-09 19:47:44 -07:00
Marco Cawthorne 66b09de431
Big commit fixing many regressions since crunch hit. env_sprite has been reworked.
multi_manager entities now behave correctly when calling themselves in MULTITHREADED mode.
Remove GS_RENDERFX option. Too many entities rely on its functionality anyway.
Fixed some rendermode behaviour - ladders will no longer be visible.
You can now see the playermodel (and no longer the viewmodel) in mirrors.
Fixed a lot of warnings.
2022-07-07 09:10:14 -07:00
Marco Cawthorne 8d16c58862
NSTraceAttack: Deal better with recursion by taking damage into account on whether or not we should continue 'penetrating' 2022-06-20 23:35:24 -07:00