diff --git a/CHANGELOG.md b/CHANGELOG.md index b72ca25e4..c6e5ad426 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,20 +6,54 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): ## Version 1.6 - xxxx-xx-xx ### Bug fixes - -* Fixed engine performance around multiple stacked bridges. -* Fixed engine performance if weather effects are active. +* Fixed engine performance around bridges. +* Fixed engine performance if weather or bubble effects are active. +* Fixed silent crashes if loaded level is corrupted or in incorrect format. +* Fixed occasional crashes if there are static meshes placed within room border walls. +* Fixed incorrect clipping of scaled off-centered static meshes. +* Fixed incorrect collision detection for off-centered moveables. +* Fixed stutter during jumps between cameras in a flyby sequence. +* Fixed uzi targeting issues after using flycheat. * Fixed snow particles not always melting on the ground. * Fixed enemy pickups dropping on death sectors. +* Fixed Sarcophagus and Search Object pickup triggers. +* Fixed vehicle transfer not happening for levels which were not previously visited. +* Fixed audio tracks placed in subfolders not restoring after loading savegame. +* Fixed initial position and lack of fade-in for looped audio track on level start. +* Fixed scripted input events not registering on the same game frame. +* Fixed incorrect object camera position. +* Fixed incorrect camera movement near walls after leaving look mode. +* Fixed binocular or lasersight camera not switching off correctly after flyby. +* Fixed Lara's Home entry not working. +* Fixed exploding TR3 bosses. +* Fixed original issue with deactivation of Dart Emitter. +* Fixed Lens Flare object not functioning properly. +* Fixed lens flares not being occluded by static meshes and moveables. +* Fixed Skeleton and Mummy not reacting to shotgun hits. + +### New Features +* Added fast savegame reloading. +* Added ricochet sounds and make the effect more prominent. +* Allow to run the engine without title level. +* Allow more than 1024 objects in a level. +* Allow more than 1000 static mesh slots in a level. -### Features/Amendments - ### Lua API changes +* Added Moveable:GetCollidable() and Moveable:SetCollidable() functions. +* Added Flow.GetFreezeMode() and Flow.SetFreezeMode() functions. +* Added Flow.GetNextLevel() function to get script entry for incoming level, if it's about to start. +* Added Effects.GetWind() function to get current wind speed vector. +* Added support for transparency value in DisplayString class. +* Added extra argument for SetAmbientTrack() function to specify if new ambient track should play from the beginning. +* Use load camera instead of load screen by playing fixed camera from OnEnd() event and removing loadScreenFile field from level's gameflow entry. +* Fixed DisplayString class not supporting some Unicode characters and empty lines in multiline strings. +* Fixed incorrect behaviour of Logic.EnableEvent() and Logic.DisableEvent() functions. +* Fixed Util.HasLineOfSight() not taking static meshes into consideration. +* Fixed collision callbacks not properly clearing after leveljump. ## [Version 1.5](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.7.2) - 2024-11-03 ### Bug fixes - * Fixed original issue with classic switch off trigger incorrectly activating some trigger actions. * Fixed moveable status after antitriggering. * Fixed leveljump vehicle transfer. @@ -57,8 +91,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fixed display sprites and display strings rendering in the inventory background. * Fixed young Lara hair drawing. https://tombengine.com/docs/level-settings/#young_lara -### Features/Amendments - +### New Features * Added high framerate mode (also known as 60 FPS mode). * Added a customisable global lensflare effect. https://tombengine.com/docs/level-settings/#lensflare * Added a customisable starry sky and meteor effect. https://tombengine.com/docs/level-settings/#stars @@ -87,14 +120,13 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Removed original limit of 32 active Flame Emitters. ### Lua API changes - * Added Flow.EnableHomeLevel() function. * Added Flow.IsStringPresent() function. * Added Flow.LensFlare() and Flow.Starfield() classes. * Added Inventory.GetUsedItem(), Inventory.SetUsedItem() and Inventory.ClearUsedItem() functions. * Added Input.KeyClearAll() function. -* Added Moveable.GetJointRotation() and optional 'offset' parameter for Moveable.GetJointPosition(). -* Added Moveable.GetTargetState() function. +* Added Moveable:GetJointRotation() and optional 'offset' parameter for Moveable.GetJointPosition(). +* Added Moveable:GetTargetState() function. * Added Room:GetRoomNumber() function. * Removed anims.monkeyAutoJump. It is now a player menu configuration. * Fixed Volume:GetActive() method. @@ -119,7 +151,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fixed bottom collision for solid static meshes. * Fixed T-Rex's head rotation. -### Features/Amendments +### New Features * Auto-switch to a crawl state if player start position is in a crawlspace. * Allow directional flame emitter (negative OCBs) to be rotated at any angle. * Revise wall spikes: @@ -166,7 +198,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fixed incorrect light collection in some cases. * Fixed normal mapping for rooms, items, and statics.' -### Features/Amendments +### New Features * Added ambient occlusion (SSAO). * Added new post-process workflow (monochrome, negative, exclusion) with tinting. * Added SMAA antialiasing instead of MSAA. @@ -225,7 +257,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fix camera snap when disengaging the look-around mode. * Fix TR4 mapper not being visible. -### Features/Amendments +### New Features * Improve head-on wall collision. * Overhaul pushables: - Separate climbable and non-climbable pushable object slots. @@ -308,7 +340,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fix incorrect culling for scaled static meshes. * Fix normal mapping. -### Features/Amendments +### New Features * Add ability to save screenshot in the "Screenshots" subfolder by pressing the "Print screen" key. * Implement separate audio track channel for playing voiceovers with subtitles in .srt format. * Don't stop ambience when Lara dies. @@ -356,7 +388,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fix rendering for static meshes with custom blending modes and alpha transparency. * Fix inconsistent multiline string spacing on different display modes. -### Features/Amendments +### New Features * Remove search object 4 hardcoded meshswap activated with a flipmap. * Add TR1 cowboy. * Add TR3 wall mounted blade. @@ -414,7 +446,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): - Please note you must use the patched version found here: https://github.com/TombEngine/Resources/blob/main/Wad2%20Objects/tr5_Imp.wad2 * Fix and improve wraith tails. -### Features/Amedments +### New Features/Amedments * Add dedicated WRAITH_TRAP object with enhanced effects. - OCB 0: Effect disabled. - OCB 1: Effect enabled. @@ -463,7 +495,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fix TR3 big gun spawning rocket with 0 life which caused an immediate explosion. * Fix TR3 Tony and add boss effect for him. -### Features/Amendments +### New Features * Add TR3 civvy. * Add TR3 electric cleaner. * Add TR3 Sophia Leigh with following OCBs: @@ -515,7 +547,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fix grenade and rocket launcher lighting. * Fix ceiling trapdoor and floor trapdoor that Lara couldn't open manually. -### Features/Amendments +### New Features * Make enemies drop pickups at first available bounding box corner point, not centerpoint. * Restore original volumetric explosion effects. * Add TR3 lizard and Puna. @@ -567,7 +599,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): * Fix bone rotations of some entities. * Fix Lara's animation for cog switch release. -### Features/Amendments +### New Features * Added new OCB to cog switch object: - Use OCB 0 to have the traditional behaviour. - Use any other OCB to can use the Cog Switch without need of any door linked. @@ -581,7 +613,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): ## [Version 1.0.4](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.2) - 2022-12-16 -### Features/Amendments +### New Features * Add generic assignable effects for moveables - fire, sparks, smoke and laser / electric ignite. * Add ability to burn enemies with FLAME_EMITTER_1 and death blocks. * Add wireframe mode and other visual debug information (switch by F10/F11 debug page scroll hotkeys). @@ -653,7 +685,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): ## [Version 1.0.3](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.1) - 2022-11-18 -### Features/Amendments +### New Features * Add ledge jumps (Lara object must be updated with new animations to make it work). * Allow any object slot to be used as a meshswap. * Add OCB 1 for rollingball to make it silent. @@ -721,7 +753,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): ## [Version 1.0.2](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6) - 2022-09-16 -### Features/Amendments +### New Features * Fix removing Pistols with TakeItem and SetItemCount. * Allow saving and loading of Vec3s in LevelVars and GameVars. * Support volume triggers made with node editor. @@ -776,7 +808,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor): ## [Version 1.0.1](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.5.2) - 2022-08-16 -### Features +### New Features * Added antialiasing support. * Added static mesh scaling support. * Added free rotation for teeth spikes instead of using OCB codes. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d0a82519e..e378ab5bd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -370,6 +370,30 @@ Leave them as is. This is good: `auto x = std::vector();` Use `//`-styled comments where possible. Only use `/* */` style in case you are about to temporarily comment certain block for testing purposes or when writing a comment that will serve as the source for generated documentation. +Use a `NOTE: ` prefix in your comment if you want to highlight something particularly noteworthy: +```c +// NOTE: Will not work for bones at ends of hierarchies. +float GetBoneLength(GAME_OBJECT_ID objectID, int boneIndex) +{ + const auto& object = Objects[objectID]; + + if (object.nmeshes == boneIndex) + return 0.0f; + + auto nextBoneOffset = GetJointOffset(objectID, boneIndex + 1); + return nextBoneOffset.Length(); +} +``` + +Use a `FAILSAFE: ` prefix in your comment if you want to highlight a particularly quirky solution without an obvious and clear purpose: +```c +if (portalRoomNumber != NO_VALUE && + rayRoomNumber != portalRoomNumber) // FAILSAFE: Prevent infinite loop if room portal leads back to itself. +{ + player.Explode(); +} +``` + ## Branches and pull requests Make sure that epic branches (tens or hundreds of files changed due to renames, namespace wrappings, etc) **are focused on a single feature or task**. Don't jump in to others epic branches with another round of your epic changes. It masks bugs and makes review process very cumbersome. diff --git a/Documentation/config.ld b/Documentation/config.ld index bd40d633c..654c3df26 100644 --- a/Documentation/config.ld +++ b/Documentation/config.ld @@ -12,7 +12,7 @@ new_type("luautil", "5 Lua utility modules", true) not_luadoc = true -local version = "1.5" +local version = "1.6" project = "TombEngine" title = "TombEngine " .. version .. " Lua API" description = "TombEngine " .. version .. " scripting interface" @@ -34,7 +34,7 @@ If this happens, check __logs/TENLog.txt__ and look for an error message with th Enjoy. -\- _squidshire_ +\- _squidshire and the TombEngine development team._ ]] convert_opt=true diff --git a/Documentation/doc/1 modules/Effects.html b/Documentation/doc/1 modules/Effects.html index ad3ca0b7d..0e51a9a27 100644 --- a/Documentation/doc/1 modules/Effects.html +++ b/Documentation/doc/1 modules/Effects.html @@ -3,7 +3,7 @@ - TombEngine 1.5 Lua API + TombEngine 1.6 Lua API @@ -77,6 +77,7 @@