Build 181708 for Serious Sam 3 is released. If you have previously opted into public beta, you already have this.
Here are the changes:
- Added support for new GPUs from nVidia and ATI. - Fixed potential crash when FPS graph is disabled and then re-enabled. - Fixed collision on a building in SV_UnderPressure level. - Fixed a possible exploit in split-screen survival. - Fixed a Steam Workshop issue causing some of the packages user was subscribed to to be silently deleted in case of an error. Now the game reports an error and performs no synchronization in such cases. - Fixed baking of light probes within editor; it now correctly determines whether a light is visible or invisible due to being hidden behind some model(s). - Fixed problem with overdraw visualisation modes not working when fast-lights are enabled. - Added point-overdraw rendering mode, very useful for visualizing small triangles, where model LOD is too high! Also, removed lightmaps' size rendering mode - no more use for it, since lightmaps are atlased. - Optimized uploading of cube-map textures. - Optimized probe light baking. - Fixed a rare bug in post-processing. - Fixed rare blinking problem in some instanced models. - Fixed wrong wrapping of German text on loading screen. - Decals' bounding box for selection now reflects size of decal. - Enabled "Create .gro file" for all documents (tex, rsc, etc.). Added file list dialog for selecting which files go into the archive. - Updated "Create .gro file" option to use the built-in zipper instead of an external tool. - A progress bar is now displayed when collecting resources for creating a .gro file. - Added warning if a .gro file contains no files. - Linux: additional mouse buttons are now supported. - Linux+OSX: split screen menus now show player names and input devices instead of "Dummy". - View bobbing strength params are now exposed in player puppet params, rather than hardcoded. - Scripting: added a new macro function: mthSafeNormalizeV3f(), which normalizes a vector and is safe to call on nul-vectors. - Scripting: added new macro functions for manipulating puppets' tools: AddDesiredTool(), RemoveDesiredTool(), DeleteAllTools(), IsToolAttached(), IsToolDesired(). - Scripting: added new macro functions for controlling puppets' view direction and movement: GetLookDirEul(), GetDesiredTempo(), SetDesiredTempo(), GetMoveType(), MoveToPoint(), SetCharacterMover(). The function GetMoveType() returns the editor name of the current value of pupet's move type. Possible return values are: "None", "Goal point", "Desired tempo look", "Drive steer look". The function MoveToPoint() sets the puppet to move towards a given destination. Internally, this sets up a move-to-point character mover, which automatically switches to navigation mover (and back) as required. However, the MoveToPoint() macro function itself is inexpensive, and can be called every frame. The function SetCharacterMover() can be used to override the character mover directly, bypassing the usual tactic selection logic. - Scripting: puppets now send a "GoalPointReached" script event upon reaching their goal point. - Scripting: unified naming convention of puppet macro attack functions and added leap attack macro function. The functions are now called: AttackMelee(), AttackShoot(), AttackLeap(). - Scripting: added a new macro function to puppet: IsInvisible(). This function checks if the puppet has an active invisibility power up, or if the player used the invisibility cheat. - Scripting: added a new macro function to puppet: MarkNonIdle(). This function should be called on scripted player actions to break idle time counter. - Scripting: added a new macro function to puppet: CanSeeEntity(). This function will perform an entity-to-entity raycast and return its result. - Scripting: added new macro functions to player puppet for showing/hiding attachments and spawning particle effects on player's main hand weapon, playing custom weapon animations and checking if weapon is busy. The functions are: IsRightHandWeaponBusy(), PlayCustomAnimOnRightHandWeapon(), RemoveCustomAnimOnRightHandWeapon(), ShowAttachmentOnRightHandWeapon(), HideAttachmentOnRightHandWeapon(), SpawnParticleEffectOnRightHandWeapon(). - Scripting: added new macro functions to player puppet for manipulating player speed multiplier, and weapon rate of fire multiplier: GetSpeedMultiplier(), SetSpeedMultiplier(), GetRateOfFireMultiplierOnRightHandWeapon(), SetRateOfFireMultiplierOnRightHandWeapon(). - Scripting: added a new macro function to player puppet: GetAimedPuppet(). This function returns the puppet which is currently under the crosshair. - Scripting: added a new macro function to world info: GetClosestLivingPlayer(). This function performs a linear search for the closest living player to a given entity, within a given range. - Scripting: added a new macro function to particle effect entity: SetRelevantEntity(). - Scripting: model hud element can now ignore aspect ratio correction, if flag is set in params.