Commit graph

151 commits

Author SHA1 Message Date
Lwmte
222177f45b
Mirrors (#1519)
* WIP TR4 style mirrors

* Fixed broken previous commit

* Added debris and effects drawing in mirrored rooms;
Some optimizations for early skip non mirrored items;

* Implemented mirrors in file format

* Use default argument value for ReadCount

* Use emplace_back and camera room number

* Fixed items culling in mirror rooms;
Changed file format for having also virtual room;

* Cached reflection matrix of mirrors at load time;
Fixed lighting in mirrored items;
Added bad cull mode after mirrore debrises drawing;
Added mirroring of dynamic lights;

* Fixed ambient occlusion in mirrored rooms

* Fixed random statics positions while shooting

* Added logic for hiding selectively reflecting moveables and statics;
Added enabled flag for disabling mirrros in the future with LUA;

* Simplify renderer code, remove excessive if statements

* Update level.cpp

* Decopypaste more mirror-related code

* More decopypasting, rename inline function, remove unneeded arg

* Remove unnecessary inline, dont reflect room lights

* Fixed billboards, reintroduce ReflectVectorOptionally

* Fixed dynamic lights

* Update RendererDraw.cpp

* Fixed 3D sprites mirroring

* Draw reflections also when Lara is in any of mirrored rooms, not only camera

* Remove unrelated changes

* Remove lambdas

* Rename fields for consistency

* Reorganize renderer code a little

* Rename

* Spawn mirrored dynamic lights in Lara rooms too

* Update RendererDraw.cpp

* Add option to reflect sprites

* Update CHANGELOG.md

* Fixed mirrors on savegame reloading

* Fix Lara not mirroring when using binoculars

* Continuation of previous fix

* Fixed 3D non-sorted sprites mirroring

* Fixed various binocular / lasersight issues

* Fix meshswap, if object is not present

* Don't perform binocular animations if binocular meshswap is not present

* Rename CamOldPos and use more consistent type for it

* Update title.bin

* Fixed #1521

* Fixed #1522

* Interpolate Lara flare light, hide target highlighters in binos

* Fix #1525

* Fixed postprocessing order and precompile shaders to speed-up loading

* Fixed #1524

* Fixed silent crash if several Lara objects are present in level near dynamic light with shadow

* Implement proper soft shadows

* Disable self-shadowing for now, as it's causing visual glitches

* Update RendererInit.cpp

* Update CHANGELOG.md

* Update CHANGELOG.md

* Formatting pass

* Revert "Formatting pass"

This reverts commit 88a8ba24de.

* Reapply "Formatting pass"

This reverts commit becd24da93.

* Update RendererFrame.cpp

* Final formatting pass

---------

Co-authored-by: MontyTRC89 <montyhammet@hotmail.it>
Co-authored-by: Jakub <80340234+Jakub768@users.noreply.github.com>
Co-authored-by: Sezz <sezzary@outlook.com>
2024-12-25 10:21:07 +02:00
Lwmte
b62c8d7c40 Minor changes 2024-12-21 20:01:55 +01:00
Lwmte
0620e83125 Don't give LDoc warning on compile 2024-12-21 12:40:24 +01:00
Lwmte
db717658fc Added references to Type module 2024-12-16 21:33:37 +01:00
davidmarr
e9f057eb64
Add Type module (#1506)
* Update VolumeObject.cpp

fixed Volume:GetActive() method

* Update CHANGELOG.md

* function description LevelFuncs.OnUseItem

* Revert "function description LevelFuncs.OnUseItem"

This reverts commit 2478afca68.

* Add Type module

Allows to check the data type of a variable

* Update Type.lua

update description

* Update Type.lua

* Update Type.lua

* Update Type.lua

* Update Type.lua

* Update Type.lua
2024-12-16 22:25:17 +02:00
Lwmte
0abb8981ba Add separate binoculars/lasersight camera types, correct default gunflash ranges 2024-12-16 01:11:33 +01:00
Lwmte
f4763bd4a2
Customize global hardcoded parameters (#1495)
* Initial commit

* Update CHANGELOG.md

* Tint flare smoke

* Expose GetCustomizations

* Added lensflare and flicker customization options for flare

* Update LensFlare.cpp

* Remove unnecessary code

* Update lara_flare.cpp

* Massive refactor to merge animations, settings and customizations

* Add HUD customization options

* Customize weapons

* Fixed flare, renamed recoil to interval, fixed lensflare default

* Occlude flare lensflares

* Update Settings.cpp

* Use alternate damage for lasersight mode

* Added hair cust

* Fix comment

* Fix another comment

* Fix link

* Fix placeholder table names

* Reorganize types

* Add missing initializers for hair settings

* Added physics cust

* Clarify description

* Update settings.lua

* Update CHANGELOG.md

* Add gun smoke, gun shells and ammo pickup counts

* Fix naming ambiguity

* Remove missing features from documentation

* Fix comment

* Fix parameter name, change default settings file

* Fixed pitch black

* Rollback DoDistanceFogForVertex

* Add camera cust

* Change binocular/lasersight toggle to color

* Update lara_basic.cpp

* Add time and statistics classes and script API for it

* Fix comment

* Use DoDamage on Lara helpers to register with statistics

* Update Time.cpp

* Fix documentation

* Fix default flare timeout

* Update Settings.lua

* Add flare muzzle offset customization

* Remove young Lara limitations

* Fix lasersight color

* Push full settings.lua

* Update RendererCompatibility.cpp

* Allow to customize root meshes, decopypaste hair and joint init code

* Added sol Time operator overloads

* Some changes to docs, add meaningful error for unknown fields

* Use existing new index template, add gunflash color settings, add shotgun muzzle

* Remove excessive usage of GetSettings()

* Cleanups

* Update Settings.lua

* Clarify parameter name

* Fix InitializeWeaponInfo

* PR review code tidying

* Fix bad merge

* Update FlowHandler.cpp

* Remove tabs for LDoc comments

* Use different comment style to preserve formatting

* Update lara_fire.cpp

* Some cleanups

* Fixed GetTimeUnits

* Fix typo

* Update Time.cpp

---------

Co-authored-by: Sezz <sezzary@outlook.com>
2024-12-15 18:24:49 +02:00
Lwmte
9a241dbc80 Fix issues with timer 2024-12-08 19:15:26 +01:00
Lwmte
784f957596
Fast reload (#1445)
* Initial commit
* Fix crash on title
* Update level.cpp
* Update CHANGELOG.md
* Do slight audiotrack fade-ins and fade-outs on leveljumps
* Implement hash checks
* Fixes
* Rename rapid to fast
* Fixed flipmaps and bridge reinit
* Bypass reinitializing renderer for fast reload
* Fix issue when title and last loaded level are the same files
* Update CHANGELOG.md
* Additional fixes
* Wrap savegame loading code into a try-catch
* Update CHANGELOG.md
* Remove door collision on fast reload, restore stopper flag
* Display log message if level file was not found
* Update CHANGELOG.md
* Clear blocked flag for boxes
* Implement fast reload setting
* Add defaults to settings
* Consistent naming
* Smooth level loading audio crossfades
* Stop non-ambience soundtracks early
* Minor formatting
* Update Settings.lua 
---------

Co-authored-by: Jakub <80340234+Jakub768@users.noreply.github.com>
Co-authored-by: Sezz <sezzary@outlook.com>
2024-11-11 12:55:50 +02:00
Lwmte
53e7ca0972 Decopypaste sync code, rename variable framerate to high, remove unused variables 2024-10-25 08:43:45 +02:00
MontyTRC89
3a345e9ccb Merge branch 'develop' into develop_60fps
# Conflicts:
#	TombEngine/Game/control/control.cpp
#	TombEngine/Game/gui.cpp
#	TombEngine/Renderer/RendererDrawMenu.cpp
#	TombEngine/Scripting/Internal/TEN/Flow/FlowHandler.cpp
2024-08-16 10:19:51 +02:00
Kewin Kupilas
f2c52e61aa
Add "Lara's Home" menu entry (#1394)
* Add "Lara's Home" menu entry

* Minor things

* Move home_level into Strings.lua

* Lara's Home -> Home Level

---------

Co-authored-by: Sezz <sezzary@outlook.com>
2024-08-11 17:20:09 +01:00
Kewin Kupilas
0628affb69
Rework menu option looping (#1393)
* Remove menu loop

* Update CHANGELOG.md

* Update config

* Implement new menu logic

* Remove mouse smoothing

* Update Input.cpp

* Allow 3 options for menu looping

* Name adjustment

* Rename RegKey

* String key rename

* General refactors

* Change default menu looping mode

* Update configuration.h

---------

Co-authored-by: Sezz <sezzary@outlook.com>
2024-08-11 09:59:56 +01:00
Sezz
6fa494b093 Make monkey swing auto jump a player setting; Lua formatting 2024-06-06 11:42:54 +10:00
Sezz
411c397027 Minor formatting 2024-05-17 18:52:26 +10:00
Stranger1992
c4f532268d Updated system strings for Variable Framerate 2024-04-30 16:19:30 +01:00
Lwmte
f6cfb0508d Add Timer.Delete() method to a timer module 2024-04-15 01:10:36 +02:00
Lwmte
9f38943005 Update scripts structure 2024-01-06 13:36:18 +01:00
Jakub
b63cf527bc
Renderer refactor (#1287)
* Fixed vertex effects for statics

* WIP implementing SMAA antialiasing

* Fixed double drawing of additive faces

* SMAA working, need to tune it

* Cleaned SMAA code, ready for test

* Formatting

* Renderer cleaning Tier 1

* Renamed Renderer11 to Renderer;
Forced DX11 hardware support;
Removed m_ from private fields in Renderer class;
Refactored render targets: optional depth buffer creation;
Back buffer now is a RenderTarget2D;

* Converting constexpr and defines to enum classes

* Converting enum to enum classes, tier 2;

* Converting constexpr to enum classes, tier 3

* Cleaned enums and constants; Renamed some files;

* Fixed shaders; Renamed AlphaTestModes;

* Cleaned shaders directory; Reverted hardware version to DX10.1 (we'll upgrade it again in the next releases);

* Renamed private fields;
Refactored quad vertex buffer for sprites;
Refactored HUD renderer structure;
Minor fixes;

* Deleted some files

* Removed reference to RendererQuad.h

* New renderer transparency, for rooms now

* Continue work

* Implemented WOIT for alpha blending;
Started renderer refactoring;

* Removed redundant DirectX api calls

* Added G-Buffer with normals and depth

* Refactored and optimized particle enemies (rats, bats, locusts, beetles);
Extended G-Buffer to effects, rats, bats, locusts, beetles, gunshells, debris;
Extended animated textures sequence to 256;
Fixed normal mapping for items and statics;

* Removed WOIT code;
Removed write to depth map in opaque pass (it's already done in depth pre-pass);
Cleaned debris rendering code;

* Removed legacy render targets;
Added dual paraboloid mapping for ambient light (to finish the light shader):
Minor cleanups;

* Implement additive debug triangles

* Unhardcode value

* Finished room ambient code, commented for now (need to write a gaussian filter);

* Fixed wrong constant buffer slot in SMAA

* Renamed draw effects functions;
Moved prepare sprites function before the draw code;
Restored additive drawing;
Restored alpha blend faces collect;

* Enhance visual debug object API

* Partially restored sprites drawing

* Rename local variables

* Improve spheres

* Update names

* Rename function

* Remove unneeded parameter

* Formatting

* Cleaned and optimized drawing of opaque/additive sprites

* Removed legacy alpha blend code;
Added drawing of alpha blended faces for rooms;

* Completed drawing of non commutative objects;
FIxed compilation;
Removed old files;

* Refactored debug statistics for renderer

* Fixed FPS calculation

* Removed not used render targets and shaders

* Added base post-process framework;
Added monochrome and sepia effects;

* SSAO WIP

* SSAO almost working, needs tuning;
Changes to G-Buffer;

* Removed .cpp files in Graphics directory and moved constructors to headers;
Templatized VertexBuffer class;
New post-process system work in progress;
New blur stage for SSAO;

* SSAO at 1/4 resolution

* Removed FinalPass.fx and moved pixel shader to PostProcess.fx;
Added color to PostProcessVertex;
Rewritten the post-process step using new system;
Tweaked some variables for SSAO;
Fixed drawing of render targets debug thumbnails;

* Rewritten antialiasing techniques with new post-process system;
Made depth target optional when creating render targets using UNKNOWN DXGI format;

* Fix for empty vertex and index buffers

* Encode normals to RGBA8 render target;
Fixed samplers of depth texture;

* Removed legacy hairs shader

* Restored SSAO at fuill res for now;
Fixed shaders structs;

* Optimized G-Buffer shaders for speed and avoid DX log spam;
Renamed updateData to UpdateData in constant buffers;

* Bilateral gaussian filter for SSAO

* Fixed wrong enum

* Cleaning constant buffers tier 1

* Added SSAO setting

* Fixed shaders

* Fixed shaders

* Update SystemStrings.lua

* Refactored initialization code;
Added read and write of ambient occlusion in Windows registry;
Refactored shaders;
Added LUA API for setting color scheme;
Removed some old variables;

* Added effect strength to post-process framework

* Some shaders cleaning;
Don't calculate SSAO if disabled;

* Restored wireframe mode

* Revert "Merge branch 'develop' into renderer_refactor"

This reverts commit 4706f46982, reversing
changes made to bd413d00b2.

* Add negative postprocess effect

* Update PostProcess.fx

* Removed some DX log spam in SMAA shaders;
Fixed crash while drawing alpha blended faces from static objects;

* Fixed alpha blended faces drawing double sided for items and statics

* Fixed flickering of alpha blended faces of rooms

* Fixed gunflashes

* Revert "Revert "Merge branch 'develop' into renderer_refactor""

This reverts commit 536c555b2d.

* Fixed shadow mapping for point lights

* Fixed bad merge in speedometer

* Fix display pickup crash

* Fix SSAO toggle with left key

* Refactoring postprocess effect workflow

- Added exclusion mode
- Separated effect mode and strength to different functions
- Reset postprocess on level start
- Preserve postprocess on savegame reload
- Enum and function renames to maintain consistency

* Fix some comments

* Fix display pickup drawing

* Rename

* Fix for lights not affecting big static objects

* Fixed antialiasing for pickup objects and for inventory scene

* Fixed ghost polygons bug

* Fixed SSAO on surfaces with no or invalid normals

* Fix merge

* Bypass postprocessing if effect strength is set to 0

* Update SystemStrings.lua

* Update Changes.txt

* Update Changes.txt

* Turn on SSAO and target highlighter by default

* Remove duplicated changelog entries

* Implement LARA_START_POS object handling

* Update lara_initialise.cpp

* Update Changes.txt

* Update Changes.txt

* Fixed double sided alpha blend faces again

* Added things to changes.txt

* Update Changes.txt

* Don't use LARA_START_POSes with OCB 0

* Fixed 3D sprites like footprints

* Fixed glow for statics;
Fixed world position for items;

* Per-triangle sorting alpha blend

* Fixed missing last polygons in alpha blending

* Code cleaning

* Added alpha blending to rats, bats, locusts, scarabs

* Restored fast alpha blend

* Fixed AA in title level

* Improved light collector;
Added code for disable statics instancing if needed for debug;

* Fixed rare wrong caustics textures sizes

---------

Co-authored-by: MontyTRC89 <montyhammet@hotmail.it>
Co-authored-by: Sezz <sezzary@outlook.com>
Co-authored-by: Stranger1992 <84292688+Stranger1992@users.noreply.github.com>
Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com>
2024-01-05 22:19:52 +00:00
Jakub
59187f4db6
Update New_Level.lua 2023-12-20 20:58:51 +00:00
Lwmte
6a3ede73eb
Rename OnControlPhase to OnLoop, fix bug with post-loop callbacks (#1283) 2023-12-20 20:12:47 +00:00
Lwmte
30614e28ae Clarify vehicle control name meaning 2023-11-09 16:17:16 +01:00
Lwmte
855c46f774 Update Gameflow.lua 2023-11-06 03:59:31 +01:00
Sezz
56530bf2ca
Update Timer.lua 2023-11-05 10:53:14 +11:00
Adngel
68e97518b4 Update Timer.lua
Or two ints, or a vec2 and a float.

But not two ints and a float.
2023-11-04 17:34:39 +01:00
Sezz
fad4cb0255 Merge branch 'develop' into DisplayString_Scale 2023-10-30 23:48:22 +11:00
Jakub
5f2ba4cdf0
Update Gameflow.lua 2023-10-24 18:37:32 +01:00
hispidence
0a3c0beaca Merge remote-tracking branch 'origin/DisplayString_Scale' into DisplayString_Scale 2023-10-13 09:23:34 +01:00
hispidence
05740927b4 Remove accidentally-committed multi-font WIP stuff. Update Timer DisplayString code. Add callstack printing stuff for CreateString. 2023-10-13 09:22:27 +01:00
Sezz
b37b4e8b55 Merge 2023-10-06 15:19:56 +11:00
Kubsy
473cc96454 add EnableLoadSave to gameflow 2023-09-25 11:10:06 +01:00
Sezz
ff3baf0781 Fix strings 2023-09-07 19:24:24 +10:00
Sezz
f0e4dc3b4b Merge branch 'develop' into sezz_target_highlighter 2023-09-07 00:07:58 +10:00
Kubsy
420eda464b add EnablePointFilter to gameflow.lua 2023-09-06 12:16:59 +01:00
Lwmte
f677a5071c
Split strings file (#1204)
* Initial Commit
* Rename
* Alphabetise system strings; minor formatting
* Fix missed rename
* Alphabetise user strings
* Newline
* Bug fix with default Strings.Lua file resulted in a crash.
* Rename in iterator

---------

Co-authored-by: Sezz <sezzary@outlook.com>
Co-authored-by: Stranger1992 <84292688+Stranger1992@users.noreply.github.com>
2023-08-31 23:14:17 +03:00
Sezz
c484013e29 Merge branch 'develop' into sezz_target_highlighter 2023-07-31 20:21:56 +10:00
Sezz
9c0523dea4
Bindable vehicle actions (#1161)
* Introduce bindable vehicle actions

* Update key names

* Convert C strings to vectors

* Update names

* Update names

* Merge branch 'develop' into sezz_bindable_vehicle_actions

* Improve boat and kayak dismounts

* Update .gitignore

* Update action strings

* Update macro

* Use simpler vector names

* Remove kayak action bits

* Fix skidoo firing

* Update configuration.cpp

* Resize config bindings vector when necessary
2023-07-18 15:53:29 +10:00
Sezz
c1b674be8d
Dehardcode quick actions and menu actions (#1154)
* Hotkey progress

* Fix scrolling; fix x64 compiler errors

* Dehardcode item hotkeys

* Move player quick actions to more appropriate file

* Get weapon scrolling to work

* Move SayNo action

* Update gui.cpp

* Add menu controls screen

* Dehardcode more menu actions

* Simplify

* Move helper functions

* Simplify

* Use std::string for key names; fix crouch action

* Fix lean reset

* Update lara_helpers.cpp

* Fix binding application

* Update gui.cpp

* Update gui.cpp

* Reorder input actions; update script enum

* Update gui.cpp

* Fix menu highlight error

* Fix default xbone bindings

* Simplify action string categories

* Commit to tentative Light action; prepare more vehicle action code

* Move medipack code to subfunction

* Move medipack code to subfunction

* Update lara_helpers.cpp

* Remove flare no

* Add missing comma

* Rename Light back to Flare

* Rename Option to Inventory

* Update lara_helpers.cpp

* Update lara_helpers.cpp

* Update strings

* Fix typo

* Fix medipack functionality

* Update arrow positioning and make arrows flash

* Update input strings and defaults

* Update action order

* Remove include

* Add arrow string constants

* Update Renderer11DrawMenu.cpp

* Update Renderer11DrawMenu.cpp

* Update Renderer11DrawMenu.cpp

* Address PR comments

* Update lara_helpers.cpp

* Use consistent line spacing

* Update Renderer11DrawMenu.cpp

---------

Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com>
2023-07-15 14:28:19 +01:00
Lwmte
6b7ed8ac89 Add null check for lua timer constructor 2023-07-04 20:20:01 +02:00
Sezz
4d19245bdc Add menu setting for target highlighter 2023-06-18 15:30:48 +10:00
Lwmte
95ff7091a9
Sound engine enhancements (#1141)
* Finalize features

* Add descriptions

* Amplify loudness output

* fix compile error

* Add subtitle parser for voice track

* Update bass.lib

* Return nil instead of empty string if no subtitle is found

* Allow to use newlines in subtitles

* Additionally try to load subtitles from /subtitles subdirectory

* Don't stop ambience when Lara dies

* Add option for turning subtitles on or off

* Update TombEngine.vcxproj

* Parse newlines correctly in subtitles

* Add millisecond constant

* Align menu

* Minor formatting; remove newlines preventing tooltips

---------

Co-authored-by: Kubsy <kubadd475@gmail.com>
Co-authored-by: Sezz <sezzary@outlook.com>
2023-06-17 12:02:51 +01:00
hispidence
e24a1d1fd0 Fix doc comment. 2023-04-27 14:48:24 +01:00
hispidence
005e5b25f8 Merge remote-tracking branch 'origin/master' 2023-01-29 18:53:43 +00:00
Lwmte
1882711be4 Enable level select by default 2023-01-29 12:17:50 +02:00
hispidence
fcf96568f9 Improve EventSequence example. 2023-01-26 21:19:58 +00:00
hispidence
d381aae14e Add warning if a new EventSequence is created with the name of one that already exists. 2023-01-26 21:13:12 +00:00
hispidence
b461855a40 Fix #940 2023-01-05 20:12:22 +00:00
hispidence
7cb24fe3c3 Doc fixes 2022-12-09 22:07:30 +00:00
Lwmte
076e989993 Add Flow.EnableLevelSelect option in Gameflow.lua to enable/disable level selection 2022-12-07 18:02:46 +02:00
Anatoly
557b25d9fa
Add option to draw Lara in title flyby (#890)
* Add option to draw Lara in title flyby
* Update Changes.txt
2022-12-06 15:40:38 +02:00