Commit Graph

68 Commits

Author SHA1 Message Date
Marco Cawthorne d45d2f1dc4
Introducing a copy of the id Tech 4 EntityDef system into Nuclide. 2023-04-30 18:01:26 -07:00
Marco Cawthorne cd3023eeba
Server: add MapTweaks. A new feature that allows tinkerers to rewrite entity classnames under certain conditions (RFC) 2023-04-22 02:45:58 -07:00
Marco Cawthorne e482cb0103
Server: add missing precache for soundDef step_swim.left/right 2023-04-16 01:25:00 -07:00
Marco Cawthorne f4cadc74a8
Shared: CLASSEXPORT macro will now behaver nicer with non-class spawn functions. 2023-04-15 18:11:43 -07:00
Marco Cawthorne 338e89c06a
Add functions all about handling Message of the Day server info. Adds the `motd` console command, as well as `motdfile`. 2023-03-25 17:32:58 -07:00
Marco Cawthorne 8ec3d00e93
Save/load system stability improvements. 2023-03-23 17:04:34 -07:00
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 86dfb3ff1a
Fix various compiler warnings. 2023-02-14 12:54:06 -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 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 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 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 d4ce7cb8c2
Documentation: started documenting all the functions in src/server/entry.qc 2022-10-10 12:30:31 -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 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 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 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 a463498f60
Huge cleanup. Add initial code for the revamped material definition system. 2022-06-01 17:38:52 -07:00
Marco Cawthorne 25c54af62c
Spring cleaning part one. 2022-05-11 12:49:04 -07:00
Marco Cawthorne c5b2107abf
ambient_generic: Implement support for playing back Sentences. 2022-05-04 21:31:37 -07:00
Marco Cawthorne 94679f3a3f
SprayLogo: Add "player.spraylogo" soundDef call instead of sound(). 2022-04-28 12:34:28 -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 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 1c102a7e76
NSEntity: Add RestoreComplete() method, so after loading/changelevel we can
interpret the data we just loaded better for each entity.
2022-03-31 00:30:15 -07: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 3882611087
Server: Make sure we forceinfokey the '*team' field to 0 upon ClientConnect
to avoid having players show up in teams after map-change.
2022-03-02 09:19:05 -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 33795822a9
Rework env_global, entities communicating with it as well as support for
changetarget/changedelay in trigger_changelevel, which will make Hazard
Course its last level work in terms of elevator shenanigans.
2022-01-10 23:48:14 -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 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 f5a8ec8ef3
Added support for the triggers/think states across Save/Restore functionality 2021-10-23 01:00:15 +02:00
Marco Cawthorne 4c2b37c34d
NSEntity: Save/Restore behaviour for some more fields. 2021-10-22 21:20:22 +02:00
Marco Cawthorne fa5cdd5a80
Initial commit of the Save/Restore system, this is the first reference
implementation of QuakeC controlled save-files and SV_PerformLoad() and
SV_PerformSave that Spoike added into FTEQW for Nuclide.
2021-10-22 20:51:51 +02:00
Marco Cawthorne 0a4b0ea795
Client: Move Damage_Draw() and Damage_Precache() out of here, into the
game-specific realm
2021-10-21 23:30:42 +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 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