Commit Graph

92 Commits

Author SHA1 Message Date
Marco Cawthorne 649ed825ad
Big commit, work over various triggers. Clean up debug prints and make
them more consistent. Warnings are in yellow, while errors are in red.

New cvar: g_developerTimestamp will display timestamps next to debug messages
originating from the game-logic. Set g_developer to 1 to see them.
A lot of useful into, such as which entity id messages originate from
should aid in debugging quite a bit.

SP level transitions should also be more reliable now in terms of
transferring entities and the like.

Some levels have awkward transition areas and you might find yourself
jumping between levels frequently. Workarounds are in the works.
2024-03-02 00:40:08 -08:00
Marco Cawthorne 0792fbaee9
Server: add Skill_Init inside init() 2024-02-23 13:58:59 -08:00
Marco Cawthorne 34884b68a3
ambient_generic: fix mix-up of small and medium radius.
also set s_nominaldistance to 1024.
2024-02-23 13:22:51 -08:00
Marco Cawthorne 9847f3828e
NSGameRules: send a newly joined player to the intermission screen gently 2024-02-21 13:41:18 -08:00
Marco Cawthorne 4a8f4a6082
Add a whole bunch of new bot features, including bot profiles.
Developers: the internal class `bot` is now `NSBot`, and an entityDef
of the old name will be instantiated instead.

Override defs/bot.def in your mod and make it use any custom spawnclass
you wish. Now games don't have to override `addbot` or `bot_add` inside
the multiplayer game rules.

There's also more console commands. Clients now have access to:
addBot, killAllBots, killClass [classname], killMovables, trigger [targetname], input [entnum] [input] [data], listBotProfiles, listTargets, teleport [targetname], teleportToClass [classname], respawnEntities, spawn
2024-01-26 19:27:50 -08:00
Marco Cawthorne 05af28180e
Server: Fix typos in various sound precache calls. 2024-01-15 15:45:48 -08:00
Marco Cawthorne 40aee258ce
NSClientSpectator: new mode: overview which is work in progress.
Various misc fixes to code routines that negatively affect splitscreen.
We also set frametime/clframetime to 0.0 after the first player view has been drawn as to not run
predraw math more than once per frame. This should not cause any issues but if you are experiencing issues let us know.
2024-01-08 14:58:45 -08:00
Marco Cawthorne 4b69949385
Server: Ensure r_meshpitch gets set to 1 on init. 2023-11-18 21:16:52 -08:00
Marco Cawthorne 32f9d974bb
New commands: listClientSoundDef, listServerSoundDef
Merge various trigger fields from Source entities into NSTrigger
Rename default player related sounds to the Source Engine style for more parity with Half-Life 2 and later games
Various player physics code fixes, such as being unable to jump higher when pushing against solids and faster noclip speed
2023-11-17 18:54:46 -08:00
Marco Cawthorne 73bec53034
PropData: read info from Source Engine .phy files 2023-10-22 23:30:31 -07:00
Marco Cawthorne 5c5eedb665
NSGameRules: add method 'Title' which returns the print name for a given gamerule. 2023-09-29 16:10:21 -07:00
Marco Cawthorne 4b36ec3bb0
trigger_transition: Handle the carrying-over of entity information based on 'globalname'. 2023-09-28 18:40:06 -07:00
Marco Cawthorne 4ec4877360
Server: add new server command 'spawndef'. 2023-09-27 13:01:30 -07:00
Marco Cawthorne 33179a555d
Server: add `sv input [INPUTNAME] [DATA]` command to debug I/O system 2023-09-25 16:12:32 -07:00
Marco Cawthorne 6298688e05
worldspawn: Change the way worldspawn keys are read, and shared with the client.
Avoiding the need to read the world on the client-side altogether.
2023-09-22 14:39:45 -07:00
Marco Cawthorne 5db3db539a
Client/Server: Handle 'skyname' universally and guess on the client whether we're using a Source Engine style skybox path 2023-09-13 07:56:11 -07:00
Marco Cawthorne 59748adf86
point_spotlight: initial implementation of this Half-Life 2 entity; also fix env_projectedtexture, func_dustmotes and func_smokevolume not rendering 2023-09-12 15:00:56 -07:00
Marco Cawthorne 60128c6b1e
Server: add "Cheaters Lament", a proof of concept detection mechanism for suspicious player behaviour 2023-08-07 13:14:49 -07:00
Marco Cawthorne f877b1620f
Add the constants loader, to allow entityDefs and other scripts to reference constants defined within scripts/constants.txt 2023-07-15 11:34:58 -07:00
Marco Cawthorne a8c4075ff9
Server: Handle savegames restoring with entityDef awareness 2023-07-07 23:43:12 -07:00
Marco Cawthorne 34e722a012
Add and track new player entity field '.score'. Used to trag score points separate from frags. 2023-06-15 11:42:01 -07:00
Marco Cawthorne 12bb472abc
add class NSPortal (initial work, plus custom pmove changes).
Work on NSProjectile expansion has begun.
Support for skill cvar referencing within entityDef values.
2023-05-27 11:58:34 -07:00
Marco Cawthorne 49d44bb21f
Server: remove rogue DOS newline characters that managed to get inside entry.qc 2023-05-01 07:15:22 -07:00
Marco Cawthorne b3b22045f3
Server: force set sv_nqplayerphysics to 0, so the engine shuts up about its prediction not working on map start 2023-05-01 06:58:54 -07:00
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