Skip to content

Releases: FreeSlave/halflife-featureful

Half-Life Featureful SDK 2024-09-26

26 Sep 18:01
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Introducing Visuals

A new concept called Visuals allows to change the render parameters of some effects without changing the code. Visuals can be edited in the templates/visuals.json file. For example, you can change the color of vortigaunt's beams or the sprite used by a bullsquid's spit projectile.

Currently the list of supported entities is incomplete but it will grow with each release.

Read the wiki article on visuals

Entity changes

  • The target of env_blowercannon now can be !activator.
  • New spawnflag Don't delay first fire for env_blowercannon.

Bugfixes

  • Prevent game_zone_player from transitioning across levels which led to the engine error (original Half-Life bug).
  • Prevent trigger_look from transitioning across levels which led to the engine error.
  • Vortigaunts don't play the powerup effect again after the attack anymore (it was a result of animation event being attached to the first frame of the animation). The solution is code-level and doesn't require the model editing.
  • Fixed ally vortigaunt being able to launch two charge tokens at the player.

Soundscripts

  • Added ZapTrap.Detect and ZapTrap.Launch soundscripts for env_energy_ball_trap.

Other changes

  • The JSON parsing errors are now shown on the screen (if the developer mode is enabled) instead of the console. This will increase the developer's awareness about the problems.
  • Some JSON type definitions are now shared between schemas to make handling of types more universal.
  • Fixed pitch property definition in JSON schema for templates/warpball.json.

Half-Life Featureful SDK 2024-09-12

12 Sep 11:08
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

New monsters added

monster_floater

An alien creature cut from Half-Life with no clearly defined canonical behavior. The current implementation is taken from Field Intensity - floaters are suicidal flyers who come to enemies and explode. Take the model from Field Intensity to enable glowing sprites attached to the floater (with the standard model from Half-Life the glowing sprites won't spawn).

The sounds used by floaters can be configured via soundscripts.

It also requires some skill variables to be defined in skill.cfg.

The monster is not enabled by default and must be enabled in features/featureful_monsters.cfg.

monster_flybee

The fast moving flying creature with range attacks. Ported from Half-Life Invasion.

By default it uses ichthyosaur sounds. The sounds can be configured via soundscripts.

The monster is not enabled by default and must be enabled in features/featureful_monsters.cfg.

monster_panthereye

An alien creature cut from Half-Life. The current implementation is quite simple - just running and doing claw attacks. The model is included in the sample mod, with ACTs set correctly on sequences and added events for the melee attack.

The sounds used by panthereyes can be configured via soundscripts.

The monster is not enabled by default and must be enabled in features/featureful_monsters.cfg.

monster_robocop

A boss robot ported from Poke646. Note: the resources (the model and sounds) for this NPC are not included in the sample mod. You can take them from Poke646.

Requires some skill variables to be defined in skill.cfg.

The monster is not enabled by default and must be enabled in features/featureful_monsters.cfg.

Thanks to @malortie and @nekonomicon for reverse-engineering Poke646.

Bugfixes

  • Fixed robogrunts damage reduction not being applied against some attacks.

Half-Life Featureful SDK 2024-09-07

07 Sep 15:44
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Introducing Soundscripts

Now instead of referring to .wav files NPCs and some items are using soundscripts similar to ones from Source. This allows to redefine what set of sounds and with what properties the entity will play in certain situations without changing the code. Soundscripts can be edited in the sound/soundscripts.json file. For example, you can change the list of zombie's pain sounds and its properties (volume, pitch and attenuation).

Read the wiki article on soundscripts

Bugfixes

  • Fixed a bug with env_smoker save-restore that caused the game crash on save.
  • Fixed a bug with a gonome gut projectile save-restore.
  • Fixed motion_manager being able to remove auxiliary entities of another motion_manager with the same name (Thanks Sparks for reporting).
  • Fixed JSON errors not being reported on client console.

Entities

  • New entity ambient_extraspeaker that allows to play sounds on the entity without occupying its own audio channels. This can be used on the player for a narrator voice - the audio will follow the client sounding like it's playing in the player's head.
  • Added Obey TriggerMode and Start On spawnflags for motion_manager.

File formats

  • A number range in some .json files now can be defined via two-element array.
  • A color in templates/warpball.json now can be defined via three-element array.

Half-Life Featureful SDK 2024-08-15

15 Aug 17:54
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

HUD

  • Added hud_armor_near_health cvar to control whether the suit armor must be rendered right after the health (like in HL 25 anniversary).
  • Added support for high resolution sprites like in HL 25 anniversary (thanks @a1batross).

Entities

  • player_capabilities now can toggle player step sounds.
  • Added Desired skin color parameter for human grunts.
  • Added env_energy_ball_trap entity - an environment hazard from Field Intensity.
  • Configurable sprite, duration, scale and number of streaks for env_spark.
  • Configurable volume for env_spark (thanks to paperboy and eisbaer for proposing the change).

Features

  • New server feature env_spark_transit to control whether env_spark entities transit on changelevel. Made it false by default (in original Half-Life env_sparks do transit on changelevel).
  • wall_puff1, wall_puff2 etc. were moved from featureful_server.cfg to featureful_client.cfg. Wall puff sprites are no longer precached on the server side and are purely used on client side.
  • New server feature weapon_p_models to control whether the weapon p_ models must be precached. This can be disabled to lower the number of precached models on server if in your mod the player is never shown with weapons (e.g. on camera).

Bugfixes

  • Fixed save-restore of multisource and some other entities that use arrays of EHANDLEs.
  • Fixed func_breakable taking damage from some attacks even if it has a Only Trigger spawnflag (original Half-Life bug).
  • Fixed drawing ammo icons in history when the icon has a non-standard size.
  • Grunts spawned from osprey don't inherit the osprey's Pitch and Roll anymore.
  • Fixed zombies sometimes standing for a couple of seconds while chasing the enemy (original Half-Life bug).
  • Fixed func_ladder acting like water when turned off (thanks to paperboy and eisbaer for finding the bug and proposing the patch).
  • Fixed human grunt medic using incorrect bodygroups with some custom models.

Commands

New server commands have been added to aid debugging in developer mode:

  • dump_ammo_types and dump_ammo_types_client to report the registered ammo types.
  • dump_precached_models and dump_precached_sounds to track the number of precached models and sounds.
  • dump_sound_replacements to report the used sound replacements on the map.

Other changes

  • Increased the maximum number of materials in materials.txt from 512 to 1024.

Repo and codebase changes

  • pm_shared code was translated from C to C++.
  • Deduplicated Vector class definitions between client and server libraries.
  • Fixed building with waf.

Half-Life Featureful SDK 2024-07-24

24 Jul 17:14
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Rain and snow weather effects

Added rain and snow effects similar to ones used in Counter Strike and Condition Zero, but toggleable and configurable.

Use the following entities to spawn rain and snow:

  • env_rain - global or localized rain.
  • env_snow - global or localized snow.
  • func_rainvolume - brush entity for localized rain.
  • func_snowvolume - brush entity for localized snow.

Both global rain and global snow can be present on the map.

The new demo map weather_demo has been added to the sample mod for rain and snow demonstration.

Other entities

  • The special value *player is supported in most places where the *locus is supported to allow refer to the player. In singleplayer it will always find the player. In multiplayer it acts like *locus, but allow only players.
  • Added Don't reset trigger counter on deactivation spawnflag for trigger_timer (can be useful when trigger number limit is set).
  • Added Pass caller as activator spawnflag for trigger_relay.
  • Added Ignore Hold Time spawnflag for trigger_camera.
  • Added Stop by player input parameter for trigger_camera.
  • Added Target when turned off parameter for trigger_camera.
  • Added Calc Position as an option to calculate value from calc_position (this allows to calculate the value of one calc_position based on the other calc_position).
  • Added Calc Velocity as an option to calculate value from calc_subvelocity (this allows to calculate the value of one calc_subvelocity based on other calc_ entities).

Console commands

  • Now you can set the use-type sent via the fire command. Use fire on <targetname> or off <targetname> to send On and Off input. Use fire set <targetname> <value> to send the numeric input (e.g. for game_counter).
  • The entities_count command now supports the argument - the classname - to report the number of entities having the specified classname.
  • Add give_intentory and remove_inventory commands to give and remove player inventory items. This can be used for debugging purposes. The first argument is the item name. The second (optional) argument is the number of items of this type to give or remove.

Half-Life Featureful SDK 2024-07-15

15 Jul 17:01
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Fast recruiting

New commands recruit_followers and disband_followers allow players to recruit all nearby friendly NPCs or call off everyone who is following the player by pressing one button. This is similar to fast recruiting of ally soldiers in Field Intensity.

The list of monsters affected by these commands is controlled by features/followers.json file.

Feature changes

  • New feature in featureful_server.cfg: vortigaunt_armor_charge. Enable to allow friendly vortigaunts to give armor to the player (similar to HL2, experimental feature). The amount of armor is configured by sk_vortigaunt_armor_charge skill value. The vortigaunt must have the free energy to perform charging.
  • hud_color command is no longer available by default. Set hud_color.configurable feature in featureful_client.cfg to true to enable the HUD color configuration by user.
  • Add hud_scale.default and hud_scale.configurable features to featureful_client.cfg.
  • Removed hud_autoscale_by_default feature in featureful_client.cfg. Set hud_scale.default to 0 to enable autoscale by default.

Entities

game_player_settings

  • game_player_settings now can set the player's armor to 0 (set =0 as value), add and substruct armor by a provided value.
  • game_player_settings now can add and substruct the player's health.
  • Spawnflags of game_player_settings are deprecated now. Weapons are now configured via parameters instead. It allows to remove specific weapons as well.
  • game_player_settings can now remove the specified amount of ammo (use a negative value).

trigger_changevalue

  • Added Treat new value as parameter for trigger_changealue which allows to tell how the new value is treated.
  • Added Action parameter for trigger_changevalue.

Calc entities

  • Added Scale factor parameter for calc_ratio.
  • Added more transformations for calc_ratio (from later versions of SoHL).
  • Added calc_numfromvec - calculate a single numeric value from the vector.
  • Added calc_vecfromnums - calculate the vector from three numeric values.
  • Added Max and Min parameters for calc_eval_number.
  • The result of calc_eval_number is now getting stored only if evaulation has succeeded. Trigger after operation is now called only if evaulation has succeeded. Added Trigger on calculation fail parameter.
  • Added Report as vector parameter for calc_eval_number.
  • Added Mod, Find Max and Find Min operators for calc_eval_number.
  • Added Third operand parameter for calc_eval_number - it allows to do computations on 3 parameters using the same entity.

Other entities

  • Added Armor Damage and Do Armor Damage spawnflags for trigger_hurt_remote (compatibility with Sven Co-op).
  • Added Player Invulnerable spawnflag for trigger_camera (compatibility with Sven Co-op).
  • Added Position and Direction parameters for particle_shooter.
  • Added Direction parameter for env_smoker.
  • Added Landmark parameter for trigger_teleport (compatibility with Spirit of Half-Life).
  • Added new entity item_pickup. It can give a specified inventory item to the player on pickup (as an alternative to player_inventory).
  • item_security icon is no longer shown in history of picked up items on the security card pickup unless the HUD sprite is set explicitly in the entity parameters. In general it's advised to use item_pickup instead.
  • Added Forward activator for trigger_timer.
  • Added Trigger on arrival for info_teleport_destination (compatibility with Sven Co-op).

Bugfixes

  • trigger_hurt_remote doesn't push the player anymore (it was unintended effect).
  • Fixed Entity to play from parameter of ambient_generic not working properly sometimes.
  • Fixed env_smoker not emitting the correct number of smokes after the repeated activation.
  • Inventory items HUD icons are no longer shown again when reloading the game.

Player inventory changes

  • The name length of player inventory items is no longer limited by 23 characters.
  • Inventory items are removed upon player's death.

Console commands

  • Added calc_position and calc_velocity commands to get the position and velocity reported by the specified entity.

FGD changes

  • Added ZHLT properties to brush model entities (like func_wall, etc.). Note that you still need to include zhlt.fgd in order to have access to compiler-specific entities like func_detail.
  • Added Glow Shell as render fx option in fgd.
  • Improved descriptions of some calc_ entities.

Changes to the demo map

  • Added examples of relative teleport and seamless teleport.
  • Added an elaborate example showing the usage of trigger_changevalue and some calc_ entities.

Half-Life Featureful SDK 2024-06-05

05 Jun 15:55
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

This release also includes the custom FGD provided by the community with assets like entity-specific icons and models that might help the level designer.

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Player inventory items

A simple player inventory system has been implemented.

Configurable armor strength

The global armor strength for the mod now can be configured via sk_plr_armor_strength skill value. Default armor strength in Half-Life is 2 i.e. one armor point has the same value as 2 health points when player takes damage.

The armor strength can also be changed dynamically via game_player_settings.

Entities

  • Added player_deployweapon - make a player deploy the specified weapon (if player has it).
  • Added Do Save and Player can't use spawnflags for cycler_sprite.
  • Added player_inventory to do operations on the player's inventory items.
  • Added player_hasinventory to test if player has a specified inventory item.
  • player_calc_ratio now can count inventory items as well (if Calc Param Type is set to Inventory item count and the Inventory item name is specified).

Bugfixes

  • Fixed particle_shooter save-restore.

Half-Life Featureful SDK 2024-05-24

24 May 16:47
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Warpball templates

Warpball templates for monstermakers are now defined in the templates/warpball.json file. The old entity-based approach is still working but now is considered deprecated.

Configuring save titles

The save titles (the ones shown in the Load game menu) are now configurable via external file save_titles.txt (in original Half-Life they're hardcoded in the engine).

Entities

  • Added player_capabilities - allows to disable/enable player's capabilities such as jumping, crouching, attacking and using (+use).
  • Added player_speed - allows to change the maximum player speed.
  • trigger_configure_monster now can dynamically change the monster's blood color.
  • Add Ignored by classify parameter for monsters. E.g. one may set barney to be ignored by Alien prey class (which headcrabs belong to), so headcrabs won't see barney as an enemy while barney will still shoot them.

New configurable features

  • dying_monsters_block_player - whether monsters block player movement while in dying animation. This is standard Half-Life behavior which becomes problematic when the dying animation is too long (e.g. bullsquid's one). This is standard Half-Life behavior which becomes problematic when the dying animation is too long (e.g. bullsquid's one).
  • player_maxhealth and player_maxarmor to set the default maximum values for health and armor used in the mod. Alternative way is to set maxhealth and maxarmor in the map .cfg file. game_player_settings now also is capable of changing the maximum health and armor values.

Bugfixes

  • Fixed monsters sometimes not finding the nearest node when they're on stairs. This is a bug from original Half-Life. Whether the fix is applied depends on the value of findnearestnodefix cvar (set to 1 by default, which means the fix is enabled).

Codebase changes

  • ALLOC_STRING called on the same data won't request the string allocation again. Instead it will reuse the cached value if such string has been already allocated on the map.
  • UnpackRGB is now shared between client and server code. Added PackRGB.

Half-Life Featureful SDK 2024-05-13

13 May 12:46
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

Note: zhlt entities are not included in the FGD. You must add zhlt.fgd to your game profile configuration in the map editor.

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Configuring the ammo amounts in ammo and weapon entities

The new features/ammo_amounts.cfg file allows you to customize the ammo provided in ammo_ and weapon_ entities by default.

This is an experimental feature.

Changes to the sample mod

  • The new demo map is included in the sample mod - flyers_demo - for demonstration and testing of the osprey and apache.
  • Previously missing models/blkop_tailgibs.mdl has been added to the resources.

New features in featureful_server.cfg

  • door_rotating_starts_open_fix - when enabled, fix the bug with func_door_rotating becoming unresponsive after the first use if it has Starts Open spawnflag. This feature is currently left disabled by default just in case some existing map relies on this behavior.
  • warpball_at_monster_center - if enabled, when env_warpball is used as a template effect for monstermaker, create the effect at the monster's body center by default, instead of monster's origin (which is usually at the monster's feet). The feature is enabled by default. If you want the old behavior, set the warpball_at_monster_center to false in your features in featureful_server.cfg.

Entities

  • The values of the parameter Warp at monster's... of monstermaker now have a different meaning. Any positive value means to create a warpball effect in the center of the monster's body. Any negative value means to create effect at the origin. And 0 (default) means to create at the position depending on the warpball_at_monster_center feature.
  • env_warpball now can define a second sprite that will be played along with the first one. sprites/xflare1.spr is provided as default second sprite in the fgd. You need to manually set the second sprite on existing maps if you want warpballs to create two sprites.
  • Added Smoke position parameter for env_smoker.
  • Added Instant spawnflag for multi_manager, multi_trigger and multi_sequence. By default targets with 0 delay will be triggered only on the next frame after the multi_manager has been triggered. With this flag such targets will be called instantly.
  • You now can provide custom keyvalues for the monster spawned via monstermaker. In the editor toggle SmartEdit (like you do with multi_manager) and add keyvalues you want to forward to the monster prepending the key names with # symbol. This allows to set some parameters that can't be set via monstermaker otherwise (e.g. bodystate of monster_barney).

Bugfixes

  • Fixed opfor grunts coming from osprey without weapons.
  • Fixed osprey and apache sounds not stopping if they were replaced with a sound replacement system.
  • Fixed flocking flyers sounds not being replaceable with a sound replacement system.

Codebase changes

  • Added GetWeaponData and SetWeaponData functions for weapons to tidy and deduplicate some prediction code.
  • ALLOC_STRING is now a function instead of the macro.

Repository changes

  • The features/ directory is no longer included in the automated builds. This is to avoid situations when someone wants to try the latest version and rewrites their features/ directory with the default one by accident.

Half-Life Featureful SDK 2024-05-01

01 May 18:55
Compare
Choose a tag to compare
Pre-release

The mod sample is included in the archive, with the test map and assets

The provided FGD has an extended format used by J.A.C.K. and won't work with Valve Hammer Editor!

If you already have a mod in development based on Half-Life Featureful read this article to get the idea how to apply the new SDK version for your project.

Changelog

Per-monster sound replacement

Now monsters have a Sound Replacement File parameter. These files define sound replacements for the monster entity. See example in sound/female_pain.txt.

This feature is quite experimental and needs more testing.

The demo map update

The demo map was extended a bit to include demonstration of more entities and features.

Captions changes

  • Number of captions is virtually unlimited now (as opposed to maximum 256 in the previous releases). Note that you're still limited by the number of sentences depending on the engine (2048 on the modern GoldSource).
  • The length of the caption is virtually unlimited (as opposed to maximum 599 characters in the previous releases).
  • Added support for the forced caption duration (the hold time). See example in sound/captions.txt.
  • Added more HL sentences to the sample sound/captions.txt.

New features in featureful_server.cfg

  • gauss_fidget - allows to enable/disable the Tau-cannon fidget idle animation.
  • medic_drop_healthkit - whether medic grunts drop healthkits upon dying.

Monsters

  • New monster monster_civilian - generic friendly npc with scientist-like behavior. Doesn't have the healing ability. Suitable for making civilian npcs like construction workers or unarmed npcs from Condition Zero Deleted Scenes.
  • Commented out monster_gus and monster_gus_dead in the fgd. This monster was from Cleaner's Adventures and wasn't enabled in the game code anyway.
  • Customizable Fly Speed, Turn Rate and Check Distance for monster_flyer_flock.
  • Added Alert friends and Friends can alert me parameters for talk monsters.
  • Monsters with Tolerance level set to Absolute are now not alerted by friends death by default (it still can be forced via Friends can alert me parameter).

Entities

  • New entity player_hasweapon - check if player has a specific weapon. Can be used as Master.
  • New entity player_hasitem - check if player has a specified item (suit, flashlight or longjump). Can be used as Master.
  • New entity trigger_skill_test - fire a trigger depending on the current difficulty.
  • New flag Fade sprite for env_smoker to automatically fade smoke sprites (by default the entity relies on fading in the sprite animation).
  • New parameter Scale unit type for env_smoker (historically the entity used tenths of the scale, i.e. 10 meant scale 1).
  • New entity player_calc_ratio - calculate the absolute or fractional value of player's health, armor or ammo amount.
  • trigger_compare has a new way to fire a target depending on the condition. Now you can define test type and triggers for pass and fail. The old triggers work independently from the new ones, but it's not recommended to use both approaches at the same time.
  • trigger_compare now can be used as a master. The state depends on the evaluation of the chosen condition.
  • The parameter Fire On Equal To of trigger_compare now uses a different internal key name. The old key is still supported, but considered deprecated.
  • New entity env_extinguisher to produce a fire extintinguisher effect. Ported from Field Intensity.
  • New parameter Starting frame for env_model. The negative value allows randomizing the starting frame.
  • momentary_door now has an associted Calc Ratio value (like in Spirit of Half-Life).

Bugfixes

  • Fixed player being able to pick up the same ammo item multiple times when the pickup policy allows picking up by pressing +use button. Thanks b0rdie for reporting.
  • Fixed not being able to set custom model and custom model scale for monster_flyer_flock. Thanks 23-down for reporting.
  • Fixed setting Gun State parameter with some custom Barney models. Thanks 23-down for reporting.
  • Now if sk_rgrunt_explode skill is not defined, the hand grenade damage is used as a fallback.

Client input changes

  • Windows version now uses SDL2 to handle mouse and joystick input when running on the engine version post 2013 update (when SDL2 was added to the engine). The old non-SDL2 input handling is still supported when running on the older versions.

Codebase changes:

  • ARRAYSIZE is now a template constexpr function instead of the macro.
  • The virtual function IsTriggered now returns bool instead of BOOL.