Commit Graph

1807 Commits

Author SHA1 Message Date
Marco Cawthorne 4b69949385
Server: Ensure r_meshpitch gets set to 1 on init. 2023-11-18 21:16:52 -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 277b453c40
Server: when skill is invalid (0) then default to 2 (medium) 2023-11-18 19:58:29 -08:00
Marco Cawthorne faba64ad28
Menu-FN: Broadcast in Chat when a player is joining a server, and handle ACTION (/me) text output 2023-11-18 15:47:37 -08:00
Marco Cawthorne af4212987f
Menu-FN: Make Chat Rooms and Controls accessible from other menus, keeping track of where we originated from 2023-11-18 14:34:16 -08:00
Marco Cawthorne 1ccb640ce6
Menu-FN: List ping for ICE servers correctly, View Game Info will now return to the appropriate menu 2023-11-18 14:10:24 -08:00
Marco Cawthorne 602fa9fd93
Menu-FN: Hide menu upon connecting to a server, and automatically refresh serverlist when opening the Internet Games menu 2023-11-18 14:00:42 -08:00
Marco Cawthorne 07173b3c7b
Platform: add menu debug command 'listGameLibrary' to output all the currently indexed games/mods 2023-11-18 13:31:33 -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 0cd5d0e5a7
MapCycle: Initialize g_mapCycle with mapcycle.txt, handle empty mapcycle slightly better. 2023-11-18 12:02:41 -08:00
Marco Cawthorne 22460c5aa0
BotLib: new commands - 'offset [vector]', 'flipx', 'flipy', 'flipz', 'merge [filename.way]', 'loadpb [podbotwaypoint.pwf]', 'loadrich [jumbot.jrf]', 'loadfb [foxbot.fwp]'
Also make the bots use the soundDef when pressing '+use'.
2023-11-17 18:58:24 -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 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 4790e9d230
NSItem: Position entity after everything else has spawned, to avoid entity lump ordering messing with droptofloor() calls 2023-11-15 00:14:06 -08:00
Marco Cawthorne 038265dd64
trigger_teleport: Special offset rules for players when choosing their final teleport destination. 2023-11-14 23:45:43 -08:00
Marco Cawthorne 801742dd4c
Platform: add MAPINFO_PREVIEW query type to MapLibrary_GetInfo() so interfaces can get a proper preview for levels. 2023-11-06 14:27:05 -08:00
Marco Cawthorne e67d1b0da4
Server: add cvars mp_td_dmgToWarn and mp_td_dmgToKick 2023-11-06 08:46:22 -08:00
Marco Cawthorne 25cfc4938e
game_team_master/NSTrigger: GetValue() is now aware of who is querying for said information. Required for game_team_master. 2023-10-30 16:37:45 -07:00
Marco Cawthorne d65ab07cf1
NSProjectile: revert the default setting for the various detonate modes 2023-10-29 23:25:40 -07:00
Marco Cawthorne a6fb7767dc
Implement cycler_weapon, cycler_wreckage, game_end, game_player_hurt, game_score, game_team_master, game_team_set, game_player_team, game_zone_player 2023-10-25 00:46:04 -07:00
Marco Cawthorne 75d03f27fe
Add missing definitions for ENT_FUNNEL and ENT_SMOKER 2023-10-24 09:50:59 -07:00
Marco Cawthorne 97c2fdd778
env_smoker: Initial implementation. 2023-10-24 00:30:42 -07:00
Marco Cawthorne 01ebb973f2
env_funnel: Initial implementation. 2023-10-23 21:36:58 -07:00
Marco Cawthorne ca04a7d637
func_platrot: Cleanup and rewrite the essential parts. Now inherits most of func_plat. 2023-10-23 14:38:02 -07:00
Marco Cawthorne 29b6a200b8
NSProjectile: Quick support for light_color/light_radius 2023-10-23 00:17:02 -07:00
Marco Cawthorne 73bec53034
PropData: read info from Source Engine .phy files 2023-10-22 23:30:31 -07:00
Marco Cawthorne 8cd6d3967d
Shared: sanity check for when decalgroups are attempted to be placed, but not available. 2023-10-18 07:47:24 -07:00
Marco Cawthorne b7167a553e
Shared: don't mess with sound def names when precaching them. 2023-10-17 18:27:59 -07:00
Marco Cawthorne 11deea5b3d
Add the following physics entities from Source: phys_ballsocket, phys_constraint, phys_constraintsystem, phys_convert, phys_hinge, phys_keepupright, phys_slideconstraint & env_physexplosion
Add new class phys_rope, which will handle move_rope and keyframe_rope from Source.
2023-10-17 16:49:01 -07:00
Marco Cawthorne 81a498d49e
Client: update viewmodel bone count directly after switching models, needed for getting the right attachment positions 2023-10-13 08:23:12 -07:00
Marco Cawthorne ab9d66b2e4
BotLib: for goals and goalitem route search, use WorldSpaceCenter() and not their origin to deal with brush triggers and non-existant origins properly 2023-10-13 08:22:31 -07:00
Marco Cawthorne 900cf43bd0
!!! Mods/games should now remove modelevent.qc and view.qc from their csprogs !!!
env_muzzleflash: Initial implementation of this Half-Life 2 entity
Client: model events are for viewmodels are now handled by NSRenderableEntity.
2023-10-12 14:45:27 -07:00
Marco Cawthorne 05ed789f9a
trigger_camera: Hacks that'll make it work (for now) 2023-10-11 01:05:40 -07:00
Marco Cawthorne f96b41bc2e
NSSurfacePropEntity: Ignore view_ofs in GetEyePos() when we're a spectator. 2023-10-11 01:05:37 -07:00
Marco Cawthorne b37afb1362
BotLib: break func_breakable entities within their path. 2023-10-11 01:05:35 -07:00
Marco Cawthorne 1bf829920f
NSRenderableEntity: Simplify RM_SOLID in RenderFXPass() 2023-10-11 01:05:34 -07: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 7d9de3a2cc
NSEntity: new method GetNearbySpot() which will return a free position close to the entity. 2023-10-11 01:05:26 -07:00
Marco Cawthorne 9602d5eac8
Client: add new cheat cvar: r_skipWorld 2023-10-11 01:05:19 -07:00
Marco Cawthorne 1d7b6fe25f
PMove: added pm_noclipSpeed and pm_noclipAccelerate cvars which serve an obvious purpose. 2023-10-11 00:39:31 -07:00
Marco Cawthorne f183bfc571
ambient_generic: fix regression in the old style sound mechanism 2023-10-06 21:19:46 -07:00
Marco Cawthorne a5ecd18047
env_model: Initial implementation of this SoHL entity 2023-10-06 00:21:17 -07:00
Marco Cawthorne 9896b652c8
env_shockwave: Initial implementation of this SoHL entity 2023-10-06 00:20:48 -07:00
Marco Cawthorne 818a1a2155
scripted_sequence: support for 'killtarget' key 2023-10-04 14:55:02 -07:00
Marco Cawthorne 662e01c84d
monster_generic: Set alliance to neutral. 2023-10-04 08:56:46 -07:00
Marco Cawthorne 6f3b07ed34
NSNavAI: ensure everything is properly nulled when an empty chase path target is set. 2023-10-04 08:56:21 -07:00
Marco Cawthorne 07e70aa4c4
NSMonster: disable yaw interpolation for now. 2023-10-04 08:55:53 -07:00
Marco Cawthorne 47eb4fb88f
func_tracktrain: fixes to the way the angle delta is calculated, and restore the train to a position relative to its last target post level transition. 2023-10-04 08:55:03 -07:00
Marco Cawthorne 40adc77d66
scripted_sequence: Don't call FreeStateMoved() when SS_NO is set. 2023-10-04 08:53:07 -07:00
Marco Cawthorne b37893e660
Client: fix the typewriter text effect timing, where fadein controls the time for each character to fade in. 2023-10-04 07:55:55 -07:00
Marco Cawthorne 11797717ef
scripted_sentence: Use targets when triggered (fixes city2a in Gunman) 2023-10-04 07:55:18 -07:00
Marco Cawthorne aadc23356d
trigger_transition: Call method TransitionComplete() onto entities when applicable. 2023-10-04 07:54:43 -07:00
Marco Cawthorne 31553d9b5c
scripted_sequence: Fix the angles being overriden when move mode NO is set. 2023-10-03 23:33:09 -07:00
Marco Cawthorne 3f0f6b2d0f
NSMonster: add new alliance type: MAL_NEUTRAL 2023-10-03 20:18:10 -07:00
Marco Cawthorne a48498e5cf
env_glow: Fix warning. 2023-10-03 11:05:38 -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 19d6f22dc4
NSIO: add TransitionComplete() method for easier handling of entities post level-transition.
NSRenderableEntity: Default renderamt to 0.
Also use Read*() methods within all of the base classes their SpawnKey() methods.
2023-10-03 11:02:47 -07:00
Marco Cawthorne 9110da2cec
trigger_once/multiple/teleport/camera, prop_rope: Save/Restore fixes 2023-10-03 11:00:28 -07:00
Marco Cawthorne 367289df84
scripted_sequence: Play animation immediately when movetype is SS_NO. 2023-10-03 10:59:25 -07:00
Marco Cawthorne ae1f768689
path_corner: Only fire its targets when a message is actually set... 2023-10-03 10:57:20 -07:00
Marco Cawthorne 51f572378f
func_pushable: Save/Restore naming fixes 2023-10-03 10:56:36 -07:00
Marco Cawthorne 7d69ab96fc
func_door: Save m_waterType 2023-10-03 10:56:05 -07:00
Marco Cawthorne 6f2115c45f
GS-EntBase: Fix formatting in a few class definitions 2023-10-03 10:54:49 -07:00
Marco Cawthorne 530f25667b
func_smokevolume: fix warning in predraw. 2023-10-03 10:52:22 -07:00
Marco Cawthorne c531efaaf9
func_dustcloud: Fix warning in predraw. 2023-10-03 10:52:08 -07:00
Marco Cawthorne c1d6324153
VGUI: Redo the way input is handled, address focus changes between Windows etc. 2023-10-01 01:19:20 -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 70bb77d2bb
trigger_changelevel/logic_auto: avoid use of the 'readcmd' builtin. 2023-09-28 23:25:26 -07:00
Marco Cawthorne 2fb002aab1
NSPhysicsEntity: Create identifier .isPhysics unique to physics based entities 2023-09-28 18:43:22 -07:00
Marco Cawthorne ee820f3ed1
logic_case: Initial implementation, missing from last commit. 2023-09-28 18:41:15 -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 f76c169671
NSTrigger: read 'globalname' key, used for level transitions. 2023-09-28 18:38:16 -07:00
Marco Cawthorne 7d37cc228c
NSMoverEntity: fix mistake that prevents spawn values from being read properly 2023-09-28 18:37:08 -07:00
Marco Cawthorne 7420df0ec6
worldspawn: set 'gametitle' serverinfo when applicable 2023-09-27 14:07:08 -07:00
Marco Cawthorne 2dbfeb06b6
env_fade: fix bogus reading of key names in SpawnKey() 2023-09-27 13:31:50 -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 9d6133054c
NSRenderableEntity: add inputs SetAnimation and SetBodyInGroup 2023-09-27 13:07:53 -07:00
Marco Cawthorne 4dcaefe368
trigger_changelevel: extra checks for funky behaviour 2023-09-27 13:03:03 -07:00
Marco Cawthorne cd8825c02a
ambient_generic: quick and dirty soundDef support 2023-09-27 13:02:04 -07:00
Marco Cawthorne 4ec4877360
Server: add new server command 'spawndef'. 2023-09-27 13:01:30 -07:00
Marco Cawthorne abea931460
trigger_once/multiple/teleport: Support for Source Engine game specific trigger filters 2023-09-27 13:00:46 -07:00
Marco Cawthorne 3ea74c3c3d
logic_auto/logic_relay/logic_timer: add some QUAKED comments 2023-09-27 12:59:41 -07:00
Marco Cawthorne a4693ff0f8
item_generic: add missing Save/Restore method declarations inside the class 2023-09-27 12:59:15 -07:00
Marco Cawthorne 91519b2706
func_tracktrain: Fix them automatically starting up. Differentiate between GoldSrc and Source engine spawnflags. 2023-09-27 12:58:51 -07:00
Marco Cawthorne 854c5907a6
NSTrigger: add method CanBeTriggeredBy() which filters out various entity types. 2023-09-27 12:57:25 -07:00
Marco Cawthorne e820e74dbc
logic_relay: Initial implementation of this Source SDK entity. 2023-09-27 00:32:16 -07:00
Marco Cawthorne e8a64da700
logic_timer: Initial implementation of this Source SDK entity 2023-09-27 00:30:13 -07:00
Marco Cawthorne 5b52c57a56
NSIO: new method CheckOutput(string), which will see if a given Output is ready to fire again. 2023-09-27 00:25:25 -07:00
Marco Cawthorne 9518a23f03
NSIO: Prevent firing an output when no activator is set 2023-09-27 00:14:44 -07:00
Marco Cawthorne d7ddfc1c87
SoundDef: add helper function int Sound_GetID(string) 2023-09-27 00:12:28 -07:00
Marco Cawthorne 49408b1342
NSMoverEntity: add 'movedir' key support for Source Engine based maps 2023-09-26 22:24:13 -07:00
Marco Cawthorne 01a7ffa56f
SoundDef: Parse 'scripts/game_sounds_manifest.txt' if present 2023-09-25 16:44:56 -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 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 a91122ccbe
item_generic: initial implementation of this Opposing Force entity 2023-09-22 16:21:40 -07:00
Marco Cawthorne e1fd04de05
trigger_once: spawnflag TO_PUSHABLES should also affect other func_ entities, it appears. 2023-09-22 16:21:01 -07:00
Marco Cawthorne b50b803b55
scripted_sequence: Only .ReleaseThink() when we're actually moving the entity... 2023-09-22 14:45:02 -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 069557f350
func_wall/func_illusionary: get rid of this optimisation that messes with odd world data 2023-09-22 14:38:52 -07:00
Marco Cawthorne a90296864b
scripted_sequence: Call .ReleaseThink() before moving monster within InitIdle() 2023-09-22 14:37:43 -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 f5308f6e08
env_beam/env_laser: Add ::RendererRestarted to fix textures upon video memory refreshes 2023-09-20 20:53:13 -07:00
Marco Cawthorne a1500166be
NSEntity: add method ::Relink() 2023-09-20 20:50:54 -07:00
Marco Cawthorne 65400fea2c
scripted_sequence: DropToFloor() after teleporting, and also only teleport in ::InitIdle when move mode is not 0 2023-09-20 20:08:08 -07:00
Marco Cawthorne c314e880fd
Client: Fix the parameter order on a few classes' ReceiveEntity methods 2023-09-20 15:40:13 -07:00
Marco Cawthorne 724523ce2c
Server: Increase ENTITYDEF_MAX to 256 2023-09-20 15:10:49 -07:00
Marco Cawthorne 4a8df93395
PropData: debris/gibs can now create decals upon impact with a surface 2023-09-20 15:10:29 -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 e44f56a56d
func_areaportal: Make work on Source Engine BSP by shoving the "portalnumber" key into .style 2023-09-18 19:37:36 -07:00
Marco Cawthorne c3f5e7a1c2
NSPhysicsEntity: move .geomtype into ODE ifdef 2023-09-18 19:36:15 -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 c71daa033e
NSTalkMonster: add detailed class documentation 2023-09-18 15:35:05 -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 9d29ad6635
point_spotlight: Optimize viewing angle alpha code a little bit 2023-09-13 12:32:51 -07:00
Marco Cawthorne 8150f0c080
env_steam: fix typo 2023-09-13 10:40:01 -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 b77ec906f6
env_steam: initial implementation of this Half-Life 2 entity. 2023-09-13 00:29:31 -07:00
Marco Cawthorne 5f070fa8c9
point_spotlight: give it a better texture (thanks Maxwell) and optimize some bits 2023-09-12 19:39:51 -07:00
Marco Cawthorne 54b73b3386
func_wall: add small alias to make func_reflective_glass entities show up 2023-09-12 15:59:04 -07:00
Marco Cawthorne 6957ff67b7
func_monitor: Network code cleanup 2023-09-12 15:58:40 -07:00
Marco Cawthorne 62426ba5d3
point_servercommand: initial implementation of this Half-Life 2 entity 2023-09-12 15:03:41 -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 f1141d3b11
Menu-FN: Throw up a panel for when you get disconnect from a server for one reason or another 2023-09-01 12:34:20 -07:00
Marco Cawthorne b7346e6593
Menu-FN: main buttons are now cut-up into different segments, using fallback text when using shorter btns_main files (like in older releases) 2023-08-31 15:40:05 -07:00
Marco Cawthorne 0dc3f19b1a
Menu-FN: Added the slightly buggy 'View game info' function. I now need to write a cache for the server entries, because the engine might clear its own cache by the time we want to display entries. 2023-08-23 08:21:53 -07:00
Marco Cawthorne ae8c2f16ba
Platform: refresh update strings more often while they're pending state changes. 2023-08-21 08:53:01 -07:00
Marco Cawthorne 9871e93a10
Platform: Documentation improvements. 2023-08-21 08:39:54 -07:00
Marco Cawthorne 061cdbd257
Platform/Menu-FN: Move map library loading into platform/ to keep things simple for menu modules 2023-08-19 10:28:36 -07:00
Marco Cawthorne 412c8f984e
Platform/Menu-FN: Overhaul of game update handling. New Nuclide specific API to query update package states that avoids string comparisons and much more. 2023-08-18 17:49:10 -07:00
Marco Cawthorne 8422ddd26b
Menu-FN: Avoid poking the games[] struct directly 2023-08-16 21:27:37 -07:00
Marco Cawthorne 2576f803cd
Menu-FN/Platform: Move all the custom game parsing/install code into platform/, also clean up a bunch of routines in there 2023-08-16 15:28:41 -07:00
Marco Cawthorne 050db32a81
Platform: Improve the recommended package selection code 2023-08-15 15:00:48 -07:00
Marco Cawthorne 410e3fc34e
Menu-FN: Adjustments to the Updates menu, move code into platform/updates.{h,qc} 2023-08-15 14:24:46 -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 0ea41d9304
Platform: functions Master_GetInternetServers() and Master_GetLANServers() return cached values now to avoid the engine touching the cache which may drop servers. 2023-08-07 12:54:55 -07:00
Marco Cawthorne 0bf9374016
SoundDef: implement `pointparticle` key, so that particle calls can happen within sound defs (lowering networking footprint further) 2023-08-07 12:53:47 -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 571ef536a1
NSProjectile: add spawn key "decal_detonate" which can spawn a DecalGroup definition upon detonation. 2023-07-29 18:45:36 -07:00
Marco Cawthorne 35b427b84d
NSTalkMonster: bone controller for head turning is handled server-side now, so remove this code in predraw. 2023-07-29 18:20:19 -07:00
Marco Cawthorne 762d1667d0
NSProjectile: Fix how fuseOffset was applied in Launch() 2023-07-29 18:16:57 -07:00
Marco Cawthorne c9bd1eb514
NSRenderableEntity: Fix frame1time not being evaluated for networking 2023-07-29 18:00:42 -07:00
Marco Cawthorne f93f79e18c
NSProjectile: Respond to Trigger() 2023-07-27 23:47:22 -07:00
Marco Cawthorne 9a1f5e3af1
NSProjectile: Respect 'offset' spawn key. 2023-07-27 23:19:48 -07:00
Marco Cawthorne 2656593203
NSRenderableEntity: Respect traileffectnum only when a previous position is known 2023-07-27 23:19:24 -07:00
Marco Cawthorne 183d343701
NSProjectile: respect 'frame' and add new boolean spawn key 'inherit_velocity' 2023-07-27 14:14:30 -07:00
Marco Cawthorne f1e47f9ea4
NSProjectile: SpawnDef/SpawnDefAtPosition/SpawnDefAttachment will now return the resulting NSProjectile 2023-07-27 13:44:28 -07:00