Commit Graph

57 Commits

Author SHA1 Message Date
Marco Cawthorne 822a7221b2
WIP pmove, AI, etc. changes 2024-04-22 15:11:12 -07:00
Marco Cawthorne 33d7c3cc50
NSMonster: change error() to NSError() to aid debugging. 2024-03-21 18:57:31 -07:00
Marco Cawthorne e9f9ae5829
NSMonster: add support for `sequence` key, used by some sitting NPCs. 2024-03-06 19:30:38 -08:00
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 06d959ef02
func_tracktrain: Lots of improvements across the board. Enjoy c0a0-c0a0e!
func_trackchange/autochange: Initial implementation.
2024-02-13 22:51:36 -08:00
Marco Cawthorne 31b88f63f2
Fixes for DAMAGE_AIM, so we can respect the `sv_aim` cvar. 2024-01-29 23:47:36 -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 fa4f77aae0
NSMonster: SetOrigin() during Respawn at least once so monsters don't die in the same spot during multiplayer respawns, inside hurt triggers or whatever. 2023-11-18 20:30:10 -08:00
Marco Cawthorne 29e7b84e4b
NSMonster: handle the check for MSF_MULTIPLAYER inside Spawned() instead of the constructor 2023-11-18 12:09:49 -08:00
Marco Cawthorne bf705a9e31
speaker: now shared between client/server game
NSTalkMonster: Remove game specific PREDISASTER flag from the code, implement GAG instead
New entities: env_cascade_light (wip), logic_achievement, env_instructor_hint (wip)
2023-11-15 09:52:11 -08:00
Marco Cawthorne a623b1e301
NSTalkMonster: pathfinding fixes that benefit following players around the maps. More failsafes. 2023-10-11 01:05:28 -07:00
Marco Cawthorne 818a1a2155
scripted_sequence: support for 'killtarget' key 2023-10-04 14:55:02 -07:00
Marco Cawthorne 07e70aa4c4
NSMonster: disable yaw interpolation for now. 2023-10-04 08:55:53 -07:00
Marco Cawthorne 3f0f6b2d0f
NSMonster: add new alliance type: MAL_NEUTRAL 2023-10-03 20:18:10 -07:00
Marco Cawthorne c59a76a53d
NSMonster: add the ability to chase path_corners and things. 2023-10-03 11:05:14 -07:00
Marco Cawthorne 3d92491e54
NSMonster/NSTalkMonster: update bone count on the client whenever the modelindex changed. 2023-09-27 13:08:39 -07:00
Marco Cawthorne d749241081
func_monsterclip: Initial implementation 2023-09-22 17:08:02 -07:00
Marco Cawthorne 0be11bd948
NSMonster: call setorigin_safe after DropToFloor to get entities out the ground, if they're stuck in it (of1a1) 2023-09-22 16:34:08 -07:00
Marco Cawthorne 4f699aae6e
Monster spawning position and scripted sequence fixes. Also leave movetype of LEAVECORPSE scripted sequence entities alone or else it breaks of1a1's G-Man 2023-09-20 22:42:11 -07:00
Marco Cawthorne 5f7ea594b8
scripted_sequence & NSMonster: support for spawnflags LEAVECORPSE. Also safely position monsters upon spawning to avoid them getting stuck in the floor. 2023-09-20 20:54:13 -07:00
Marco Cawthorne d9d3220833
NSRenderableEntity: various tweaks to networking, env_glow 2023-09-20 15:09:23 -07:00
Marco Cawthorne b7126fbadb
env_glow: from client-side only entity to shared. also support other rendermodes (accurate to GoldSrc) 2023-09-19 23:01:59 -07:00
Marco Cawthorne c920dc2df0
NSMonster: add spawn key 'reserve_ammo', which should be self explanatory. See docs otherwise. 2023-09-18 17:57:47 -07:00
Marco Cawthorne c8d29078da
NSMonster: Add 'dead' boolean spawn key. Will decide if the monster starts 'dead' 2023-09-18 15:51:35 -07:00
Marco Cawthorne 4f35c7b6bf
NSMonster: Explicitly reset animation time before attack acts happen, add class documentation 2023-09-18 15:34:44 -07:00
Marco Cawthorne 83202a6174
NSMonster: add spawn key "leap_damage", to define the sort of damage the monster can apply when leaping towards you. 2023-07-30 08:12:56 -07:00
Marco Cawthorne bd470605a3
Exterminate FX_Explosion, FX_Spark and FX_Impact references. 2023-07-24 14:14:20 -07:00
Marco Cawthorne 9e6a203a02
Shared: Go over the various base classes and bring Save/Restore methods up to date. 2023-07-07 23:34:58 -07:00
Marco Cawthorne bc67e0ab47
NSRenderableEntity: add new methods SetAxialScale() and GetAxialScale(). These can be used in combination with the isotropic scaler which uses SetScale(). 2023-07-07 17:05:30 -07:00
Marco Cawthorne a79ffd77b0
NSMonster: change entity spawn key 'body_on_draw' to support a group prefix (e.g. 1:2 for group 1, model 2) 2023-06-28 14:29:33 -07:00
Marco Cawthorne d5bb5f933d
NSRenderableEntity: Increase network precision of body field, add new methods 'SetBodyInGroup(int, int)' and 'GetBodyInGroup(int)' 2023-06-28 14:19:47 -07:00
Marco Cawthorne 31774ce3f1
EntityDef work on NSMonster, NSTalkMonster, NSProjectile etc. 2023-06-20 21:19:00 -07:00
Marco Cawthorne 40dc1267fa
NSMonster: Add FramegroupForAct() and ActPlay() methods, deprecate Anim* methods. 2023-06-02 19:25:49 -07:00
Marco Cawthorne d0838eab60
NSMonster: turning animation support, with new overridable methods AnimTurnLeft/AnimTurnRight 2023-06-01 16:17:11 -07:00
Marco Cawthorne b4fbab80c5
NSMonster: cache idle animation in case it differs (between ACT events, in case of HL MDL) 2023-05-31 11:57:01 -07:00
Marco Cawthorne 055988da77
fix typo in NSMonster. 2023-05-31 11:47:19 -07:00
Marco Cawthorne e880bf764a
NSMonster: get movement speed from animations by default, add cvar ai_stepSize to configure distance 2023-05-31 11:44:31 -07:00
Marco Cawthorne 7ad89b9cb2
NSMonster: new method: GetYawSpeed, which controls the turning speed in eueler angles per second. 2023-05-31 11:18:34 -07:00
Marco Cawthorne 5eae288cb9
NSMonster: Four new callback methods that developers can hook into. HasBeenKilled(), HasBeenHit(), HasBeenGibbed() and HasBeenAlerted() 2023-05-31 10:09:21 -07:00
Marco Cawthorne bd7cb44784
AI: add ai_debugNav, and ai_debugLogic cvars. Add cooldown timer for targets 2023-05-30 12:06:16 -07:00
Marco Cawthorne 6078d31f12
NSMonster: add methods SetEyePos, and cvar r_showViewCone. 2023-05-17 08:59:26 -07:00
Marco Cawthorne 3a755aaba7
NSSurfacePropEntity: add SetCanBleed() and CanBleed() methods to abstract the old iBleeds field. 2023-04-22 01:05:27 -07: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 dfcf0d183d
NSMonster: Gib properly using Disappear() instead of Hide() 2022-12-13 17:45:33 -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 2265047bfe
Fix a bunch of nonvirtual/virtual mismatching going on that's been caught by the new compiler. 2022-11-16 14:04:10 -08:00
Marco Cawthorne e499a7d484
Documented the Nuclide System (NS) classes. 2022-10-14 13:08:47 -07:00
Marco Cawthorne 6c7e3e8c06
NSRenderableEntity: add new overridable method (void) HandleAnimEvent(float, int string)
Also fix the mouth-flapping on NSTalkMonster.
2022-09-10 09:56:15 -07:00
Marco Cawthorne 146051dd67
Proper nonvirtual declarations for class methods. 2022-08-24 15:11:04 -07:00
Marco Cawthorne 7c40100e46
Cleanup time for some of our base classes. Go over Show/Hide methods, and document
the EFFECTS fields we have available. Since we do our own networking mostly we can reuse
some that are only available via CSQC (or NQSSQC)
2022-08-24 14:05:59 -07:00