Here comes a big one. This update improves stability and performance (especially when there are a lot of aliens at once) and a whole lot more. Special thanks to the contributors to RDA, especially Orange, who contributed many of their patches from that mod.
Stability and Performance
-
Killing a large number of aliens at once no longer crashes the game.
-
The death animation of Shieldbugs no longer causes rare client crashes.
-
Long play sessions will no longer crash due to particles array overflow.
-
VScripts no longer crash server when creating a lot of entities in challenges.
-
Cleaned up memory leaks.
-
Improved performance by removing unnecessary calculations throughout the codebase.
-
Disabled some spammy developer warnings by default.
-
Improved the performance of rm_welcome_message.
-
Reduce the amount of client-server network errors
Aliens
-
Fixed Buzzer poison getting stuck if a player died while it was active and did not switch to another marine.
-
Fixed Parasites and Xenomites being immune to blast damage when fully submerged in water.
-
Fixed Drones getting stuck when dismounting info_node_climb.
-
Fixed a case where Drones would navigate to the wrong location when pathfinding failed.
-
Parasites should no longer appear to be growing outside of their egg or spawn at the wrong place when jumping out of an egg with unusual angles.
-
Mortarbug shells no longer block moving platforms.
-
Buzzers properly enter and exit the sleep state when far from players.
-
Drones will no longer "warp" past marines on challenges with very high drone acceleration.
-
Aliens with moveclone set do not trigger physics collision code. This improves performance on maps like Cargo Elevator that use aliens in a cinematic way.
Weapons
-
Extremely short range shots will no longer cause incorrect decals or impact animations.
-
X33 Damage Amplifier and IAF Heal Beacon no longer bounce in place or fall through the floor when placed on a moving platform.
-
M478 Proximity Incendiary Mines no longer fall through certain types of dynamic floor.
-
ML30 Laser Trip Mines no longer explode when touched by an invisible character.
-
SM75 Combat Flares and TG-05 Gas Grenades no longer collide with NPC Clip.
-
Fixed an issue where grenades would aim incorrectly if the marine had been hit from behind very recently.
-
Fixed collision inconsistencies between mines and various types of throwables.
-
The beam of the mining laser no longer gets stuck if the weapon is deleted by a script.
Misc
-
Fixed doors getting stuck with negative health if they were killed from the side they were dented towards. Extremely high damage can correctly knock down a door in one hit.
-
Sentry bases now use a different skin number for each type of sentry.
-
Made the cheat convar asw_unlock_all_weapons available outside of debug builds.
-
Added asw_create_generic_emitters_for_drone_gibs, which can be set to 0 to disable some graphics.
-
r_drawsprites and r_drawropes are no longer marked as cheats.
-
Added statistics support for the Football map.
-
Fixed exploits involving client commands (cl_campaignsas, cl_kickvote, etc.)
-
Fixed the warning message for an invalid unburrow idle activity.
-
Fixed a rare case where a marine dying would not automatically spectate the next marine.
-
Fixed the calculation of the fast hack time for 4-wire hacks.
-
Fixed scrolling the difficulty from Insane using keyboard or a controller going to Easy rather than Brutal.
-
Fixed not being able to draw on some parts of the map in the mission failed debriefing.
-
Improved physics calculations when a marine is stuck on a box or near a spawning alien.
-
Increased engine limit for pseudosounds, which are used for NPC AI.
-
Reduced the delay when starting a mission.
-
Added HUD support for having more than max HP.
Client ConVars
-
rda_better_weapon_chooser
-
rda_faster_radialmenu
-
rda_faster_wire_hack_close
-
rda_draw_scanner_rings
-
asw_tree_sway_enabled
-
rda_print_console_objective_completion_time
-
rda_print_chat_objective_completion_time
Server ConVars
-
rda_marine_backpack
-
rda_marine_backpack_alt_position
-
sv_clamp_unsafe_velocities
-
sv_skip_velocities_warnings
-
sv_draw_debug_overlays_release
-
phys_applystressdamage
Server ConCommands
-
rda_hide_backpack
-
rda_draw_backpack
-
rda_strafepush
Mapping
-
Added the ability to require a held rd_weapon_generic_object to activate an trigger_asw_button_area.
-
Added rd_func_jumpjet, which allows the Jump Jets and the Blink Pack to jump to a point inside the volume regardless of pathing.
-
Added the ability to mark spawners and aliens to reflect grenades.
Challenge ConVars
-
asw_paint_ammo_bar
-
rda_grenade_launcher_grenade_ricochet
-
rda_grenade_allow_electro_amped
-
rda_grenade_electrostun_duration
-
rda_grenade_electrostun_range_multiplier
-
rda_grenade_max_ricochets
-
rda_grenade_post_ricochet_velocity_multiplier
-
rda_grenade_reflector_radius
-
rda_grenade_search_reflectors
-
rda_laser_mine_ownerless_alien_friendly
-
rda_marine_allow_strafe
-
rda_marine_strafe_allow_air
-
rda_marine_strafe_push_hor_velocity
-
rda_marine_strafe_push_vert_velocity
-
rda_mortarbug_shells_by_alien_sizescale
-
sv_enablebunnyhopping
-
sv_autobunnyhopping
Game Events
-
Added laser_mine_active (entindex, marine)
-
Added cluster_grenade_create (entindex, marine, weapon)
-
Modified player_dropped_weapon (userid, entindex) - added entindex.
VScript Functions
-
void CBaseEntity::SetParent(handle parent) - sets an entity as another entity's move parent; faster than calling the input from VScript
-
void CBaseEntity::ClearParent() - clears the entity's move parent; faster than calling the input from VScript
-
handle FindNearestNPC(Vector Position, bool CheckZCoordinate, float Radius) - returns the nearest character (marine, colonist, or alien) to the given coordinate
-
void CASW_Grenade_Cluster::Disable() - disables the grenade's timer
-
void CASW_Grenade_Cluster::Enable() - re-enables the grenade's timer
-
void CASW_Grenade_Cluster::EnableWithReset() - re-enables and resets the grenade's timer to its original duration
-
void CASW_Grenade_Cluster::ReflectBack() - reflects the grenade to approximately where it was fired from
-
void CASW_Grenade_Cluster::ReflectRandomly() - reflects the grenade to a random direction
_The VScript functions added to CASW_GrenadeCluster are also available as Hammer inputs.
Changed files in this update