Change log/5.02

From Sven Co-op
< Change log
Revision as of 15:14, 12 December 2020 by AdamR (talk | contribs)
Jump to navigation Jump to search

1 Code

1.1 Game library

  • Added check to prevent invalid sound names in the media player playlist file from causing a negative array index to be used.
  • Added new CVAR &quot;sv_log_player_deaths&quot; that controls whether player deaths are logged. (On by default)(
  • Converted more file loading operations to use SteamPipe via the engine file system.
  • Fixed &quot;multi_manager&quot; causing stack corruption when using the trigger type feature.
  • Fixed &quot;trigger_changemodel&quot; trying to change the player's model if it was already overridden to the given model.
  • Fixed &quot;trigger_transition&quot; having the wrong name.
  • Fixed a file handle leak when loading the maps for voting.
  • Fixed a freeze when the sound/model replacement code tries to open a file that is really a directory.
  • Fixed a memory leak and garbage value read in &quot;trigger_condition&quot;.
  • Fixed a string null termination using the wrong index when getting the machine IP address.
  • Fixed alerts on the client not outputting warnings and errors when developer is set to 1 or higher.
  • Fixed excessive thread consumption (particularly on Linux hosts) when retrieving donor information fails.
  • Fixed player's next decal spray time resetting on death or suicide, or when the player has killed another player.
  • Fixed players disappearing from the score board when various values become not a number or infinite.
  • Fixed server administrators list sometimes becoming corrupted when parsed.
  • Fixed to the KeyValues parser so it can now parse empty blocks correctly.
  • Fixed to the KeyValues parser that caused it to parse }{ as one token, instead of as 2 tokens.
  • Fixed voting menu not always listing all players.
  • Game libraries are now built with Microsoft Visual C++ 2015 (instead of Microsoft Visual C++ 2010) on the Windows XP compatible platform tool kit.
  • Improved reliability of Linux hosts retrieving donor information from the on-line database.
  • Made CVAR &quot;sv_log_monster_kills&quot; affect monsters killing players.
  • Observer mode no longer strips player weapons and items when exiting it.
  • Partially fixed Linux hosts not returning the correct IP address for the machine when requested, so a loopback address will be ignored if a non-loopback address is available. (This is still dependent on the hosts configuration of the system having one machine host name entry pointing to a real NIC's address.)
  • Re-factored all &quot;trigger_random&quot; entities into a single entity, and fixed various unsafe operations. (The old entities, i.e. &quot;trigger_random_time&quot;, can still be used but will be mapped to &quot;trigger_random&quot; with the timer enabled)
  • Re-factored func_breakable and door attack vector code so it no longer duplicates code or leaks memory.
  • Removed all references to the memory debugging code, since it no longer works in VC++ 2015.
  • Renamed CVAR &quot;sv_player_log_frequency&quot; to &quot;sv_log_player_frequency&quot;.
  • The log classes will now only open a log if the output isn't empty.
  • The media player no longer reloads the playlist twice when the reload playlist button is pressed.
  • When a player is killed the game rules now correctly checks if an entity is a player, instead of checking if the class is CLASS_PLAYER.

1.2 Engine

  • Core: Changed hard-default value of various CVAR's:
    • cl_cmdrate: 200
    • cl_logocolor: &quot;Ltblue&quot;
    • cl_updaterate: 60
    • name: &quot;New Player&quot;
    • rate: 50000
  • Core: Custom entities defined by the game DLL (and scripts) can now be spawned by engine functions.
  • Core: Disabled reading the network rate setting from the Windows registry.
  • Core: Increased maximum GL textures to 6144 from 4800.
  • Linux server launcher: Fixed incorrect auto-update application ID.

1.3 Sound

  • Disabled FMOD Ex's FMOD_INIT_ENABLE_PROFILE flag.
  • Fixed a bug that caused materials with the maximum allowed name length to overwrite the material type for it.
  • Fixed client not loading custom materials for foot steps.
  • Fixed incorrect origin of impact sounds.
  • Fixed two potential crashes when reading CVAR's.
  • New CVAR &quot;s_mute_unfocused&quot; (on by default) to determine if FMOD should mute all sound output while the game window is not in focus.
  • Sound replacement now uses a more optimal memory allocation approach.
  • Sounds loaded at runtime will now also get OGG compression.

1.4 Non-playable characters

  • [Osprey] Added default case to a switch so Ospreys can never drop a null entity by accident.
  • [Scientist] Fixed being able to control/guide enemy scientists.

1.5 Equipment

  • [Displacer] Fixed bug where the displacer's tertiary fire would never play client side effects.
  • [Displacer] Reworked how the displacer's tertiary fire works so the delay between shots still applies.
  • [Inventory] Fixed a crash on map change when a player is holding a map inventory item.
  • [Inventory] Fixed entity sometimes causing an infinite loop (and stack overflow) when the collect limit has been reached and the item/entity is being deleted.
  • [Inventory] Fixed the inventory dialog causing a crash after being respawned by a map entity (trigger_respawn).
  • [Uzi] Added entity &quot;ammo_uziclip&quot; to supply 9mm rounds at the Uzi's clip size, and used when players drop ammo while wielding an Uzi (or two).

1.6 AngelScript

  • Added &quot;pev&quot; as a member variable to all custom entities.
  • Added a space between 2 words in the Angelscript description string.
  • Added additional checks to NetworkMessage to prevent the wrong message from sending messages begun by another.
  • Added CEntityFuncs::CreateGib.
  • Fixed text menus being removed on map change. (Scripts are now responsible for cleaning them up.)
  • Added CEntityFuncs::PrecacheMaterialSounds.
  • Added CGib to the API.
  • Added checks to prevent server administrators from being kicked or banned by scripts.
  • Added constant to indicate the size of the buffer used to contain the result of a ClientConnect rejection.
  • Added CPlayerFuncs::CreateBot and BotDisconnect.
  • Added CServer: a singleton class that keeps track of server wide state.
  • Added date to the Angelscript log opened message.
  • Added m_szAnimExtension variable to CBasePlayer.
  • Added overloads to CAdminControl that allow plug-ins to slay/kill/kick/ban players without having to specify an administrator.
  • Added PrecacheGeneric method to CGame.
  • Added PrescheduleThink to ScriptBaseMonsterEntity.
  • Added return statement in null pointer test.
  • Added string debugging features to CAutoString and CHashStringPool.
  • Changed how per-module globals are handled: they now use global accessor functions instead of manually declared and initialized globals, allowing them to be used during global variable initialization. (Removed the old method completely.)
  • Clearing the scheduler's timer list now removes all references to other objects held by each timer, so as to avoid memory leaks due to circular references.
  • Fixed g_AdminControl.SetReservedSlots and GetReservedSlots crashing the game.
  • Fixed incorrect use of a bitwise AND operation being used to determine whether or not to call map scripts (code was intended for client side scripting).
  • Fixed scripts failing to load on Linux in particular locations.
  • Fixed typo in Angelscript documentation. (Console command)
  • NetworkMessage is now a scoped reference type to prevent copy construction from creating an invalid message.
  • Reloading plug-ins no longer calls MapInit on them.
  • Removed all references to the memory debugging code, since it no longer works in VC++ 2015.
  • Removed CEngineFuncs::CreateFakeClient.
  • Removed CEntityFuncs::TeamsMatch.
  • Removed fUpdateClient from KeyValueBuffer::SetValue.
  • Removed m_szTeamName from CBasePlayer.
  • Renamed a variable to prevent variable shadowing.
  • Replaced the game's string pool with a more efficient one.
  • The Angelscript log now outputs to the console after logging instead of before to ensure consistent output.
  • The log classes will now only open a log if the output isn't empty.
  • Updated Angelscript's module builder to use SteamPipe.
  • Updated CAutoString so it compares with empty strings properly.
  • Updated UTIL_FindAbstractResourcePath to use SteamPipe.
  • Updated worldspawn to precache required files using SteamPipe.

2 Maps

2.1 Black Mesa: Special Tactics Sector

  • Fixed include path for AmmoMod not going up one directory.
  • Prevented players from changing model to a different team colour than they are.

2.2 Dead Simple Neo

  • Made final cut scene skippable with a vote.
  • Prettified objective screens.

2.3 Half-Life

  • [HL C11 A1] Added &quot;weapon_hornetgun&quot; to the equipment configuration as of this map, when players first find it.
  • [HL C14] Fixed players being trapped in a black box at the start. (Mostly.)

2.4 Momma Mesa

  • Updated display name of the author as per author's request.

2.5 Richard Boderman

  • Map has been removed. This map will be available with the 4.0 map pack instead.

2.6 Single player campaign portal

  • Added a few lines to the map information to tell players that some areas might be sealed by the administrator or because the conversion is not installed.

2.7 Toonrun

  • [Part 1] Fixed non-solid wall at Catapultator (TM) area.

3 Models

3.1 Player

  • Removed model Junction Punch. (It will be available in the optional player model pack)
  • Removed model Seini. (Missing polygons)
  • Removed various models that could cause copyright controversy.

4 Scripts

  • [Entity Manager] Removed command &quot;!addfakeclient&quot;.
  • [HL C11 A3] Fixed map not using up retries when the map restarts using survival mode.
  • [Survival] Added checks to prevent negative time intervals from being set.
  • [Survival] Fixed survival persistence not carrying over.
  • [Survival] Script now registers the hooks for &quot;ClientPutInServer&quot;, &quot;ClientDisconnect&quot; and &quot;PlayerKilled&quot; itself, eliminating the need to do so manually.
  • [Survival] Script now tracks its state more thoroughly.
  • [Survival] Script now updates the time until activation so players are more aware of it. The delay between updates is configurable.
  • [Vehicle] Fix vehicles decelerating in the air and getting stuck.

5 Other

5.1 FGD

  • &quot;trigger_random_time&quot; and &quot;trigger_random_unique&quot; have now been absorbed into &quot;trigger_random&quot;.

5.2 SDK

  • We will be including internal test maps along with their sources for new features for teaching purposes. These can be found in the &quot;examples&quot; folder within the &quot;mapping&quot; folder of the SDK.
    • [displacer] How to use displacer targets.
    • [item_inventory] Example uses of &quot;item_inventory&quot; as shown in Adam's demonstration video.

5.3 UI

  • Advanced player settings are now ordered by group, with a few extra settings added.