mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Merge branch 'develop' into voncroy_reworked
This commit is contained in:
commit
356b31a372
213 changed files with 6250 additions and 2509 deletions
21
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
21
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
|
@ -1,5 +1,5 @@
|
||||||
name: Bug report
|
name: Bug report
|
||||||
description: Create a report to help us improve
|
description: Create a report to help us understand and diagnose your issue. Your contribution is welcomed and valued!
|
||||||
title: "[ bug Report ]"
|
title: "[ bug Report ]"
|
||||||
labels: Awaiting Triage
|
labels: Awaiting Triage
|
||||||
|
|
||||||
|
@ -16,10 +16,8 @@ body:
|
||||||
description: |
|
description: |
|
||||||
Please select the TombEngine Version from the dropdown list.
|
Please select the TombEngine Version from the dropdown list.
|
||||||
options:
|
options:
|
||||||
|
- v1.5 (development build)
|
||||||
- v1.4
|
- v1.4
|
||||||
- v1.3
|
|
||||||
- v1.2
|
|
||||||
- v1.1
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
@ -29,10 +27,9 @@ body:
|
||||||
description: |
|
description: |
|
||||||
Please select the Tomb Editor version used from the dropdown list.
|
Please select the Tomb Editor version used from the dropdown list.
|
||||||
options:
|
options:
|
||||||
|
- v1.7.2 (development version)
|
||||||
- v1.7.1
|
- v1.7.1
|
||||||
- v1.7.0
|
- v1.7.0
|
||||||
- v1.6.9
|
|
||||||
- v1.6.8
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
@ -68,18 +65,6 @@ body:
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Screenshots
|
|
||||||
description: |
|
|
||||||
Please check this box if you have provided screenshots or any other media for this issue
|
|
||||||
**note** If you do not provide screenshots or anything else, it may be hard for devs to investigate
|
|
||||||
provide a link to your screenshot here or simply drag and drop your screenshot into this textbox
|
|
||||||
placeholder: |
|
|
||||||
A description of any additional content here.
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional Content
|
label: Additional Content
|
||||||
|
|
48
CHANGELOG.md
48
CHANGELOG.md
|
@ -1,18 +1,17 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
Here you will find the full changelog of TEN's releases from Version 1.0 and up
|
The dates are in European standard format where date is presented as **YYYY-MM-DD**.
|
||||||
|
|
||||||
The dates are in European standard format where date is presented as **YYYY-MM-DD**
|
|
||||||
|
|
||||||
TombEngine releases are located in this repository (alongside with Tomb Editor): https://github.com/TombEngine/TombEditorReleases
|
TombEngine releases are located in this repository (alongside with Tomb Editor): https://github.com/TombEngine/TombEditorReleases
|
||||||
|
|
||||||
## Version 1.5 - xxxx-xx-xx
|
## Version 1.5 - xxxx-xx-xx
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
||||||
* Fixed original issue with classic switch off trigger incorrectly activating some trigger actions.
|
* Fixed original issue with classic switch off trigger incorrectly activating some trigger actions.
|
||||||
* Fixed moveable status after antitriggering.
|
* Fixed moveable status after antitriggering.
|
||||||
* Fixed leveljump vehicle transfer.
|
* Fixed leveljump vehicle transfer.
|
||||||
* Fixed weapons not properly hitting enemies.
|
* Fixed weapons not properly hitting enemies.
|
||||||
|
* Fixed falling through dynamic bridges that move upwards.
|
||||||
* Fixed laserhead teleporting Lara and making her invisible on death.
|
* Fixed laserhead teleporting Lara and making her invisible on death.
|
||||||
* Fixed sarcophagus pick-ups.
|
* Fixed sarcophagus pick-ups.
|
||||||
* Fixed issue with Lara not rotating together with bridges while picking up items.
|
* Fixed issue with Lara not rotating together with bridges while picking up items.
|
||||||
|
@ -40,32 +39,31 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
||||||
|
|
||||||
### Features/Amendments
|
### Features/Amendments
|
||||||
|
|
||||||
* Added variable framerate , that allows the engine to run at an unlocked framerate for a much smoother experience. Setting can be toggled on or off in the graphical settings menu.
|
* 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 global lensflare effect. https://tombengine.com/docs/level-settings/#lensflare
|
||||||
* Added a customisable starry sky and meteor effect (based on TR5). https://tombengine.com/docs/level-settings/#stars
|
* Added a customisable starry sky and meteor effect (based on TR5). https://tombengine.com/docs/level-settings/#stars
|
||||||
* Added the ability to display "Lara's Home" entry in the main menu.
|
* Added the ability to display "Lara's Home" entry in the main menu.
|
||||||
|
* Added the ability to change pickup item count by modifying item hit points.
|
||||||
* Added F12 as alternative to PrtSc for screenshots.
|
* Added F12 as alternative to PrtSc for screenshots.
|
||||||
* Added option to enable or disable menu option looping.
|
* Added TR3 Seal Mutant. https://tombengine.com/docs/ocb-and-setup-instructions/#sealmutant
|
||||||
- Menu scrolling using held inputs will stop at the last option until a new input is made.
|
|
||||||
* Added TR3 seal mutant. https://tombengine.com/docs/ocb-and-setup-instructions/#sealmutant
|
|
||||||
- You must use this version: https://github.com/TombEngine/Resources/raw/main/Wad2%20Objects/Enemies/TEN_Seal_Mutant.wad2
|
- You must use this version: https://github.com/TombEngine/Resources/raw/main/Wad2%20Objects/Enemies/TEN_Seal_Mutant.wad2
|
||||||
* Add new sound conditions: Quicksand and Underwater.
|
* Added new sound conditions: Quicksand and Underwater.
|
||||||
- Quicksand - sound effect plays when a moveable is in quicksand.
|
- Quicksand - sound effect plays when a moveable is in quicksand.
|
||||||
- Underwater - sound plays when the camera is submerged.
|
- Underwater - sound plays when the camera is submerged.
|
||||||
* Added TR4 Enemy_Jeep https://tombengine.com/docs/ocb-and-setup-instructions/#enemy_jeep
|
* Added TR4 Enemy Jeep. https://tombengine.com/docs/ocb-and-setup-instructions/#enemy_jeep
|
||||||
* Changed Rome Hammer to not hurt player whilst deactivated.
|
* Changed TR5 Rome Hammer to not hurt player whilst deactivated.
|
||||||
* Changed Statue with blade damage, from 20 to 200.
|
* Changed TR2 Statue with blade damage from 20 to 200.
|
||||||
* Changed sound effect that is triggered when using the `level.rumble` feature in a level. Sound effect now part of the default soundmap (ID 359) and additional hardcoded pitch shift has been removed.
|
* Changed sound effect that is triggered when using the `level.rumble` feature in a level (ID 359 in the soundmap).
|
||||||
* Changed hardcoded sound for RAISING_BLOCKS back to the soundID used in TRLE (ID 149)
|
* Changed hardcoded sound for Raising Block 1/2 back to the ID used in TRLE (ID 149).
|
||||||
* Changed Water sound condition to ShallowWater.
|
* Enhanced TR2 Rolling Spindle detection to avoid them going down through pits.
|
||||||
* Enhanced Rolling Spindle detection to avoid them going down through pits.
|
* Enhanced Sentry Guns, with a new ItemFlags[3], to contain the ID of the inventory item that deactivates the sentry guns (Puzzle Item 5 by default).
|
||||||
* Enhanced Sentry Guns, with a new ItemFlags[3], to contain the ID of the inventory item that deactivates the sentry guns ( by default PUZZLE_ITEM5 )
|
* Enhanced Dart Emitter, with a new ItemFlags[0], to contain the number of frames between shots (by default 32 in Dart Emitter, and 24 in Homing-Dart Emitter).
|
||||||
* Enhanced Dart Emitter, with a new ItemFlags[0], to contain the number of frames between shots ( by default 32 in dart emitter, and 24 in homing-dart emitter ).
|
* Enhanced Raptor behaviour and handling. https://tombengine.com/docs/ocb-and-setup-instructions/#raptor
|
||||||
* Enhanced raptor behaviour and handling. https://tombengine.com/docs/ocb-and-setup-instructions/#raptor
|
|
||||||
- You must use this version: https://github.com/TombEngine/Resources/raw/main/Wad2%20Objects/Enemies/TEN_Raptor.wad2
|
- You must use this version: https://github.com/TombEngine/Resources/raw/main/Wad2%20Objects/Enemies/TEN_Raptor.wad2
|
||||||
* The limit of 32 active Flame Emitters has been removed.
|
* Removed original limit of 32 active Flame Emitters.
|
||||||
|
|
||||||
### Lua API changes
|
### Lua API changes
|
||||||
|
|
||||||
* Added Flow.EnableHomeLevel() function.
|
* Added Flow.EnableHomeLevel() function.
|
||||||
* Added Flow.IsStringPresent() function.
|
* Added Flow.IsStringPresent() function.
|
||||||
* Added Flow.LensFlare() and Flow.Starfield() classes.
|
* Added Flow.LensFlare() and Flow.Starfield() classes.
|
||||||
|
@ -78,7 +76,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
||||||
|
|
||||||
## [Version 1.4](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.7.1) - 2024-04-21
|
## [Version 1.4](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.7.1) - 2024-04-21
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug fixes
|
||||||
* Fixed drawing of display sprites in title level.
|
* Fixed drawing of display sprites in title level.
|
||||||
* Fixed drawing of smoke sprites and various other sprites.
|
* Fixed drawing of smoke sprites and various other sprites.
|
||||||
* Fixed drawing of transparent surfaces when debris are present in scene.
|
* Fixed drawing of transparent surfaces when debris are present in scene.
|
||||||
|
@ -121,7 +119,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
||||||
|
|
||||||
## [Version 1.3](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.7) - 2024-01-06
|
## [Version 1.3](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.7) - 2024-01-06
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug fixes
|
||||||
* Fixed crash if title logo is removed from Textures folder.
|
* Fixed crash if title logo is removed from Textures folder.
|
||||||
* Fixed crash if unknown player state ID is encountered.
|
* Fixed crash if unknown player state ID is encountered.
|
||||||
* Fixed bug with OCB 2 on pushables, and some other pushable bugs.
|
* Fixed bug with OCB 2 on pushables, and some other pushable bugs.
|
||||||
|
@ -177,7 +175,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
||||||
|
|
||||||
## [Version 1.2](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.9) - 2023-11-11
|
## [Version 1.2](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.9) - 2023-11-11
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug fixes
|
||||||
* Fix burning torch not working properly if there are more than 256 objects in a level.
|
* Fix burning torch not working properly if there are more than 256 objects in a level.
|
||||||
* Fix grenade and rocket projectiles smoke offset in certain directions.
|
* Fix grenade and rocket projectiles smoke offset in certain directions.
|
||||||
* Fix projectiles flying through animating objects.
|
* Fix projectiles flying through animating objects.
|
||||||
|
@ -254,7 +252,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
||||||
|
|
||||||
## [Version 1.1.0](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.8) - 2023-07-29
|
## [Version 1.1.0](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.8) - 2023-07-29
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug fixes
|
||||||
* Fix enemies shooting Lara through static meshes and moveables.
|
* Fix enemies shooting Lara through static meshes and moveables.
|
||||||
* Fix skeletons and mummies not being affected by explosive weapons.
|
* Fix skeletons and mummies not being affected by explosive weapons.
|
||||||
* Fix crash on loading if static meshes with IDs above maximum are present.
|
* Fix crash on loading if static meshes with IDs above maximum are present.
|
||||||
|
@ -465,7 +463,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
||||||
|
|
||||||
## [Version 1.0.6](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.4) - 2023-01-29
|
## [Version 1.0.6](https://github.com/TombEngine/TombEditorReleases/releases/tag/v1.6.4) - 2023-01-29
|
||||||
|
|
||||||
### Bug FIxes
|
### Bug fixes
|
||||||
* Fix major pathfinding bug which could have caused lots of issues with enemy behaviour.
|
* Fix major pathfinding bug which could have caused lots of issues with enemy behaviour.
|
||||||
* Fix potential random crashes due to incorrect rendering behaviour.
|
* Fix potential random crashes due to incorrect rendering behaviour.
|
||||||
* Fix savegame crash for disabled enemies with partially set activation mask.
|
* Fix savegame crash for disabled enemies with partially set activation mask.
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <here>Flow.Animations</here></li>
|
<li> <here>Flow.Animations</here></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <here>Flow.Fog</here></li>
|
<li> <here>Flow.Fog</here></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <here>Flow.InventoryItem</here></li>
|
<li> <here>Flow.InventoryItem</here></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
397
Documentation/doc/2 classes/Flow.LensFlare.html
Normal file
397
Documentation/doc/2 classes/Flow.LensFlare.html
Normal file
|
@ -0,0 +1,397 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
|
<head>
|
||||||
|
<title>TombEngine 1.4 Lua API</title>
|
||||||
|
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<div id="product">
|
||||||
|
<div id="product_logo"></div>
|
||||||
|
<div id="product_name"><big><b></b></big></div>
|
||||||
|
<div id="product_description"></div>
|
||||||
|
</div> <!-- id="product" -->
|
||||||
|
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Menu -->
|
||||||
|
|
||||||
|
<div id="navigation">
|
||||||
|
<br/>
|
||||||
|
<h1>TombEngine</h1>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="../index.html">Index</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>1 Modules</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../1 modules/Effects.html">Effects</a></li>
|
||||||
|
<li> <a href="../1 modules/Flow.html">Flow</a></li>
|
||||||
|
<li> <a href="../1 modules/Input.html">Input</a></li>
|
||||||
|
<li> <a href="../1 modules/Inventory.html">Inventory</a></li>
|
||||||
|
<li> <a href="../1 modules/Logic.html">Logic</a></li>
|
||||||
|
<li> <a href="../1 modules/Objects.html">Objects</a></li>
|
||||||
|
<li> <a href="../1 modules/Sound.html">Sound</a></li>
|
||||||
|
<li> <a href="../1 modules/Strings.html">Strings</a></li>
|
||||||
|
<li> <a href="../1 modules/Util.html">Util</a></li>
|
||||||
|
<li> <a href="../1 modules/View.html">View</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>2 Classes</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../2 classes/View.DisplaySprite.html">View.DisplaySprite</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <here>Flow.LensFlare</here></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Moveable.html">Objects.Moveable</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Room.html">Objects.Room</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Sink.html">Objects.Sink</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.SoundSource.html">Objects.SoundSource</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Static.html">Objects.Static</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Volume.html">Objects.Volume</a></li>
|
||||||
|
<li> <a href="../2 classes/Strings.DisplayString.html">Strings.DisplayString</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>3 Primitive Classes</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../3 primitive classes/Color.html">Color</a></li>
|
||||||
|
<li> <a href="../3 primitive classes/Rotation.html">Rotation</a></li>
|
||||||
|
<li> <a href="../3 primitive classes/Vec2.html">Vec2</a></li>
|
||||||
|
<li> <a href="../3 primitive classes/Vec3.html">Vec3</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>4 Enums</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||||
|
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||||
|
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||||
|
<li> <a href="../4 enums/Input.ActionID.html">Input.ActionID</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.AmmoType.html">Objects.AmmoType</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.MoveableStatus.html">Objects.MoveableStatus</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.ObjID.html">Objects.ObjID</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.RoomFlagID.html">Objects.RoomFlagID</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.RoomReverb.html">Objects.RoomReverb</a></li>
|
||||||
|
<li> <a href="../4 enums/Sound.SoundTrackType.html">Sound.SoundTrackType</a></li>
|
||||||
|
<li> <a href="../4 enums/Util.LogLevel.html">Util.LogLevel</a></li>
|
||||||
|
<li> <a href="../4 enums/View.AlignMode.html">View.AlignMode</a></li>
|
||||||
|
<li> <a href="../4 enums/View.CameraType.html">View.CameraType</a></li>
|
||||||
|
<li> <a href="../4 enums/View.PostProcessMode.html">View.PostProcessMode</a></li>
|
||||||
|
<li> <a href="../4 enums/View.ScaleMode.html">View.ScaleMode</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>5 Lua utility modules</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../5 lua utility modules/EventSequence.html">EventSequence</a></li>
|
||||||
|
<li> <a href="../5 lua utility modules/Timer.html">Timer</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<h1>Class <code>Flow.LensFlare</code></h1>
|
||||||
|
<p>Represents a lens flare.</p>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2><a href="#Functions">Functions</a></h2>
|
||||||
|
<table class="function_list">
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare">LensFlare(Pitch, Yaw, Color.)</a></td>
|
||||||
|
<td class="summary">Create a LensFlare object.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:GetEnabled">LensFlare:GetEnabled()</a></td>
|
||||||
|
<td class="summary">Get the lens flare's enabled status.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:GetSunSpriteID">LensFlare:GetSunSpriteID()</a></td>
|
||||||
|
<td class="summary">Get the sun's sprite ID.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:GetPitch">LensFlare:GetPitch()</a></td>
|
||||||
|
<td class="summary">Get the lens flare's pitch angle in degrees.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:GetYaw">LensFlare:GetYaw()</a></td>
|
||||||
|
<td class="summary">Get the lens flare's yaw angle in degrees.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:SetColor">LensFlare:SetColor()</a></td>
|
||||||
|
<td class="summary">Get the lens flare's color.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:SetSunSpriteID">LensFlare:SetSunSpriteID(New)</a></td>
|
||||||
|
<td class="summary">Set the lens flare's sun sprite ID.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:SetPitch">LensFlare:SetPitch(New)</a></td>
|
||||||
|
<td class="summary">Set the lens flare's pitch angle.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:SetYaw">LensFlare:SetYaw(New)</a></td>
|
||||||
|
<td class="summary">Set the lens flare's yaw angle.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#LensFlare:SetColor">LensFlare:SetColor(New)</a></td>
|
||||||
|
<td class="summary">Set the lens flare's color.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||||
|
|
||||||
|
<dl class="function">
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare"></a>
|
||||||
|
<strong>LensFlare(Pitch, Yaw, Color.)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Create a LensFlare object. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">Pitch</span>
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
angle in degrees.
|
||||||
|
</li>
|
||||||
|
<li><span class="parameter">Yaw</span>
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
angle in degrees.
|
||||||
|
</li>
|
||||||
|
<li><span class="parameter">Color.</span>
|
||||||
|
<span class="types"><a class="type" href="../3 primitive classes/Color.html#">Color</a></span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><a class="type" href="../2 classes/Flow.LensFlare.html#LensFlare">LensFlare</a></span>
|
||||||
|
A new LensFlare object.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:GetEnabled"></a>
|
||||||
|
<strong>LensFlare:GetEnabled()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the lens flare's enabled status. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">bool</span></span>
|
||||||
|
Lens flare's enabled status.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:GetSunSpriteID"></a>
|
||||||
|
<strong>LensFlare:GetSunSpriteID()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the sun's sprite ID. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Sprite ID.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:GetPitch"></a>
|
||||||
|
<strong>LensFlare:GetPitch()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the lens flare's pitch angle in degrees. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
Pitch angle in degrees.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:GetYaw"></a>
|
||||||
|
<strong>LensFlare:GetYaw()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the lens flare's yaw angle in degrees. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
Yaw angle in degrees.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:SetColor"></a>
|
||||||
|
<strong>LensFlare:SetColor()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the lens flare's color. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:SetSunSpriteID"></a>
|
||||||
|
<strong>LensFlare:SetSunSpriteID(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the lens flare's sun sprite ID. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
sprite ID.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:SetPitch"></a>
|
||||||
|
<strong>LensFlare:SetPitch(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the lens flare's pitch angle. (float)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
pitch angle in degrees.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:SetYaw"></a>
|
||||||
|
<strong>LensFlare:SetYaw(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the lens flare's yaw angle. (float)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
yaw angle in degrees.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "LensFlare:SetColor"></a>
|
||||||
|
<strong>LensFlare:SetColor(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the lens flare's color. (Color)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><a class="type" href="../3 primitive classes/Color.html#">Color</a></span>
|
||||||
|
color.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
</div> <!-- id="content" -->
|
||||||
|
</div> <!-- id="main" -->
|
||||||
|
<div id="about">
|
||||||
|
<i>generated by <a href="https://github.com/hispidence/TEN-LDoc">TEN-LDoc</a> (a fork of <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a>)</i>
|
||||||
|
</div> <!-- id="about" -->
|
||||||
|
</div> <!-- id="container" -->
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <here>Flow.Level</here></li>
|
<li> <here>Flow.Level</here></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
@ -106,10 +108,6 @@
|
||||||
|
|
||||||
<h2><a href="#Members">Members</a></h2>
|
<h2><a href="#Members">Members</a></h2>
|
||||||
<table class="function_list">
|
<table class="function_list">
|
||||||
<tr>
|
|
||||||
<td class="name" ><a href="#nameKey">nameKey</a></td>
|
|
||||||
<td class="summary">(string) string key for the level's (localised) name.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="name" ><a href="#scriptFile">scriptFile</a></td>
|
<td class="name" ><a href="#scriptFile">scriptFile</a></td>
|
||||||
<td class="summary">(string) Level-specific Lua script file.</td>
|
<td class="summary">(string) Level-specific Lua script file.</td>
|
||||||
|
@ -135,6 +133,14 @@
|
||||||
<td class="summary">(<a href="../2 classes/Flow.SkyLayer.html#">Flow.SkyLayer</a>) Secondary sky layer</td>
|
<td class="summary">(<a href="../2 classes/Flow.SkyLayer.html#">Flow.SkyLayer</a>) Secondary sky layer</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="name" ><a href="#starfield">starfield</a></td>
|
||||||
|
<td class="summary">(<a href="../2 classes/Flow.Starfield.html#">Flow.Starfield</a>) Starfield.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#lensFlare">lensFlare</a></td>
|
||||||
|
<td class="summary">(<a href="../2 classes/Flow.LensFlare.html#">Flow.LensFlare</a>) Global lens flare .</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="name" ><a href="#fog">fog</a></td>
|
<td class="name" ><a href="#fog">fog</a></td>
|
||||||
<td class="summary">(<a href="../2 classes/Flow.Fog.html#">Flow.Fog</a>) omni fog RGB color and distance.</td>
|
<td class="summary">(<a href="../2 classes/Flow.Fog.html#">Flow.Fog</a>) omni fog RGB color and distance.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -198,22 +204,6 @@
|
||||||
<h2 class="section-header "><a name="Members"></a>Members</h2>
|
<h2 class="section-header "><a name="Members"></a>Members</h2>
|
||||||
|
|
||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
|
||||||
<a name = "nameKey"></a>
|
|
||||||
<strong>nameKey</strong>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
(string) string key for the level's (localised) name.
|
|
||||||
Corresponds to an entry in strings.lua.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
<dt>
|
<dt>
|
||||||
<a name = "scriptFile"></a>
|
<a name = "scriptFile"></a>
|
||||||
<strong>scriptFile</strong>
|
<strong>scriptFile</strong>
|
||||||
|
@ -307,6 +297,36 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "starfield"></a>
|
||||||
|
<strong>starfield</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
(<a href="../2 classes/Flow.Starfield.html#">Flow.Starfield</a>) Starfield.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "lensFlare"></a>
|
||||||
|
<strong>lensFlare</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
(<a href="../2 classes/Flow.LensFlare.html#">Flow.LensFlare</a>) Global lens flare .
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a name = "fog"></a>
|
<a name = "fog"></a>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <here>Flow.Mirror</here></li>
|
<li> <here>Flow.Mirror</here></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <here>Flow.Settings</here></li>
|
<li> <here>Flow.Settings</here></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <here>Flow.SkyLayer</here></li>
|
<li> <here>Flow.SkyLayer</here></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
@ -154,13 +156,14 @@
|
||||||
<dd>
|
<dd>
|
||||||
(int) cloud speed. </p>
|
(int) cloud speed. </p>
|
||||||
|
|
||||||
<p>Values can be between [-32768, 32767], with positive numbers resulting in a sky that scrolls from
|
<pre><code> Values can be between [-32768, 32767], with positive numbers resulting in a sky that scrolls from
|
||||||
west to east, and negative numbers resulting in one that travels east to west.</p>
|
west to east, and negative numbers resulting in one that travels east to west.
|
||||||
|
|
||||||
<p>Please note that speeds outside of the range of about [-1000, 1000] will cause the
|
|
||||||
sky to scroll so fast that it will no longer appear as a coherent stream of clouds.
|
|
||||||
Less is more. City of The Dead, for example, uses a speed value of 16.
|
|
||||||
|
|
||||||
|
Please note that speeds outside of the range of about [-1000, 1000] will cause the
|
||||||
|
sky to scroll so fast that it will no longer appear as a coherent stream of clouds.
|
||||||
|
Less is more. City of The Dead, for example, uses a speed value of 16.
|
||||||
|
</code></pre>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
454
Documentation/doc/2 classes/Flow.Starfield.html
Normal file
454
Documentation/doc/2 classes/Flow.Starfield.html
Normal file
|
@ -0,0 +1,454 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
|
<head>
|
||||||
|
<title>TombEngine 1.4 Lua API</title>
|
||||||
|
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<div id="product">
|
||||||
|
<div id="product_logo"></div>
|
||||||
|
<div id="product_name"><big><b></b></big></div>
|
||||||
|
<div id="product_description"></div>
|
||||||
|
</div> <!-- id="product" -->
|
||||||
|
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Menu -->
|
||||||
|
|
||||||
|
<div id="navigation">
|
||||||
|
<br/>
|
||||||
|
<h1>TombEngine</h1>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="../index.html">Index</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>1 Modules</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../1 modules/Effects.html">Effects</a></li>
|
||||||
|
<li> <a href="../1 modules/Flow.html">Flow</a></li>
|
||||||
|
<li> <a href="../1 modules/Input.html">Input</a></li>
|
||||||
|
<li> <a href="../1 modules/Inventory.html">Inventory</a></li>
|
||||||
|
<li> <a href="../1 modules/Logic.html">Logic</a></li>
|
||||||
|
<li> <a href="../1 modules/Objects.html">Objects</a></li>
|
||||||
|
<li> <a href="../1 modules/Sound.html">Sound</a></li>
|
||||||
|
<li> <a href="../1 modules/Strings.html">Strings</a></li>
|
||||||
|
<li> <a href="../1 modules/Util.html">Util</a></li>
|
||||||
|
<li> <a href="../1 modules/View.html">View</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>2 Classes</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../2 classes/View.DisplaySprite.html">View.DisplaySprite</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <here>Flow.Starfield</here></li>
|
||||||
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Moveable.html">Objects.Moveable</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Room.html">Objects.Room</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Sink.html">Objects.Sink</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.SoundSource.html">Objects.SoundSource</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Static.html">Objects.Static</a></li>
|
||||||
|
<li> <a href="../2 classes/Objects.Volume.html">Objects.Volume</a></li>
|
||||||
|
<li> <a href="../2 classes/Strings.DisplayString.html">Strings.DisplayString</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>3 Primitive Classes</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../3 primitive classes/Color.html">Color</a></li>
|
||||||
|
<li> <a href="../3 primitive classes/Rotation.html">Rotation</a></li>
|
||||||
|
<li> <a href="../3 primitive classes/Vec2.html">Vec2</a></li>
|
||||||
|
<li> <a href="../3 primitive classes/Vec3.html">Vec3</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>4 Enums</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||||
|
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||||
|
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||||
|
<li> <a href="../4 enums/Input.ActionID.html">Input.ActionID</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.AmmoType.html">Objects.AmmoType</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.MoveableStatus.html">Objects.MoveableStatus</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.ObjID.html">Objects.ObjID</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.RoomFlagID.html">Objects.RoomFlagID</a></li>
|
||||||
|
<li> <a href="../4 enums/Objects.RoomReverb.html">Objects.RoomReverb</a></li>
|
||||||
|
<li> <a href="../4 enums/Sound.SoundTrackType.html">Sound.SoundTrackType</a></li>
|
||||||
|
<li> <a href="../4 enums/Util.LogLevel.html">Util.LogLevel</a></li>
|
||||||
|
<li> <a href="../4 enums/View.AlignMode.html">View.AlignMode</a></li>
|
||||||
|
<li> <a href="../4 enums/View.CameraType.html">View.CameraType</a></li>
|
||||||
|
<li> <a href="../4 enums/View.PostProcessMode.html">View.PostProcessMode</a></li>
|
||||||
|
<li> <a href="../4 enums/View.ScaleMode.html">View.ScaleMode</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>5 Lua utility modules</h2>
|
||||||
|
<ul class="nowrap">
|
||||||
|
<li> <a href="../5 lua utility modules/EventSequence.html">EventSequence</a></li>
|
||||||
|
<li> <a href="../5 lua utility modules/Timer.html">Timer</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<h1>Class <code>Flow.Starfield</code></h1>
|
||||||
|
<p>Represents a starfield.</p>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2><a href="#Functions">Functions</a></h2>
|
||||||
|
<table class="function_list">
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield">Starfield(starCount)</a></td>
|
||||||
|
<td class="summary">Create a starfield object with only stars.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield">Starfield(starCount, meteorCount)</a></td>
|
||||||
|
<td class="summary">Create a starfield object with stars and meteors.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:GetStarsEnabled">Starfield:GetStarsEnabled()</a></td>
|
||||||
|
<td class="summary">Get the starfield's enabled status of stars.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:GetMeteorsEnabled">Starfield:GetMeteorsEnabled()</a></td>
|
||||||
|
<td class="summary">Get the starfield's enabled status of meteors.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:GetStarCount">Starfield:GetStarCount()</a></td>
|
||||||
|
<td class="summary">Get the starfield's number of stars.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:GetMeteorCount">Starfield:GetMeteorCount()</a></td>
|
||||||
|
<td class="summary">Get the starfield's number of meteors.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:GetMeteorSpawnDensity">Starfield:GetMeteorSpawnDensity()</a></td>
|
||||||
|
<td class="summary">Get the starfield's meteor spawn density.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:GetMeteorVelocity">Starfield:GetMeteorVelocity()</a></td>
|
||||||
|
<td class="summary">Get the starfield's meteor velocity.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:SetStarCount">Starfield:SetStarCount(New)</a></td>
|
||||||
|
<td class="summary">Set the starfield's number of stars (6000 max).</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:SetMeteorCount">Starfield:SetMeteorCount(New)</a></td>
|
||||||
|
<td class="summary">Set the starfield's number of meteors (100 max).</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:SetMeteorSpawnDensity">Starfield:SetMeteorSpawnDensity(New)</a></td>
|
||||||
|
<td class="summary">Set the starfield's meteor spawn density.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#Starfield:SetMeteorVelocity">Starfield:SetMeteorVelocity(New)</a></td>
|
||||||
|
<td class="summary">Set the starfield's meteor velocity.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||||
|
|
||||||
|
<dl class="function">
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield"></a>
|
||||||
|
<strong>Starfield(starCount)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Create a starfield object with only stars. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">starCount</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Star count.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><a class="type" href="../2 classes/Flow.Starfield.html#Starfield">Starfield</a></span>
|
||||||
|
A new Starfield object.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield"></a>
|
||||||
|
<strong>Starfield(starCount, meteorCount)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Create a starfield object with stars and meteors. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">starCount</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Star count (6000 max).
|
||||||
|
</li>
|
||||||
|
<li><span class="parameter">meteorCount</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Meteor count (100 max).
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><a class="type" href="../2 classes/Flow.Starfield.html#Starfield">Starfield</a></span>
|
||||||
|
A new Starfield object.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:GetStarsEnabled"></a>
|
||||||
|
<strong>Starfield:GetStarsEnabled()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the starfield's enabled status of stars. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">bool</span></span>
|
||||||
|
Stars enabled status.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:GetMeteorsEnabled"></a>
|
||||||
|
<strong>Starfield:GetMeteorsEnabled()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the starfield's enabled status of meteors. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">bool</span></span>
|
||||||
|
Meteors enabled status.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:GetStarCount"></a>
|
||||||
|
<strong>Starfield:GetStarCount()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the starfield's number of stars. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Count.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:GetMeteorCount"></a>
|
||||||
|
<strong>Starfield:GetMeteorCount()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the starfield's number of meteors. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Count.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:GetMeteorSpawnDensity"></a>
|
||||||
|
<strong>Starfield:GetMeteorSpawnDensity()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the starfield's meteor spawn density. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
Spawn density.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:GetMeteorVelocity"></a>
|
||||||
|
<strong>Starfield:GetMeteorVelocity()</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Get the starfield's meteor velocity. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Returns:</h3>
|
||||||
|
<ol>
|
||||||
|
|
||||||
|
<span class="types"><span class="type">float</span></span>
|
||||||
|
Velocity.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:SetStarCount"></a>
|
||||||
|
<strong>Starfield:SetStarCount(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the starfield's number of stars (6000 max). (int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
count.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:SetMeteorCount"></a>
|
||||||
|
<strong>Starfield:SetMeteorCount(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the starfield's number of meteors (100 max). (int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
count.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:SetMeteorSpawnDensity"></a>
|
||||||
|
<strong>Starfield:SetMeteorSpawnDensity(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the starfield's meteor spawn density. (int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
spawn density.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "Starfield:SetMeteorVelocity"></a>
|
||||||
|
<strong>Starfield:SetMeteorVelocity(New)</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Set the starfield's meteor velocity. (float)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Parameters:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><span class="parameter">New</span>
|
||||||
|
<span class="types"><span class="type">int</span></span>
|
||||||
|
velocity.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
</div> <!-- id="content" -->
|
||||||
|
</div> <!-- id="main" -->
|
||||||
|
<div id="about">
|
||||||
|
<i>generated by <a href="https://github.com/hispidence/TEN-LDoc">TEN-LDoc</a> (a fork of <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a>)</i>
|
||||||
|
</div> <!-- id="about" -->
|
||||||
|
</div> <!-- id="container" -->
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <here>Objects.AIObject</here></li>
|
<li> <here>Objects.AIObject</here></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <here>Objects.Camera</here></li>
|
<li> <here>Objects.Camera</here></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <here>Objects.LaraObject</here></li>
|
<li> <here>Objects.LaraObject</here></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
@ -178,7 +180,7 @@
|
||||||
<strong>DisplaySprite(ID, int, pos, rot, scale[, color])</strong>
|
<strong>DisplaySprite(ID, int, pos, rot, scale[, color])</strong>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Create a DisplaySprite object.
|
Create a DisplaySprite object. ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
@ -101,7 +103,7 @@
|
||||||
|
|
||||||
<h1>Primitive Class <code>Rotation</code></h1>
|
<h1>Primitive Class <code>Rotation</code></h1>
|
||||||
<p>Represents a degree-based 3D rotation.</p>
|
<p>Represents a degree-based 3D rotation.</p>
|
||||||
<p>All values are clamped to the range [0.0, 360.0].</p>
|
<p> All values are clamped to the range [0.0, 360.0].</p>
|
||||||
|
|
||||||
|
|
||||||
<h2><a href="#Members">Members</a></h2>
|
<h2><a href="#Members">Members</a></h2>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="../2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="../2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="../2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="../2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="../2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="../2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
|
|
@ -49,10 +49,12 @@
|
||||||
<li> <a href="2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
<li> <a href="2 classes/Flow.Animations.html">Flow.Animations</a></li>
|
||||||
<li> <a href="2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
<li> <a href="2 classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||||
<li> <a href="2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
<li> <a href="2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||||
|
<li> <a href="2 classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||||
<li> <a href="2 classes/Flow.Level.html">Flow.Level</a></li>
|
<li> <a href="2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||||
<li> <a href="2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
<li> <a href="2 classes/Flow.Mirror.html">Flow.Mirror</a></li>
|
||||||
<li> <a href="2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
<li> <a href="2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||||
<li> <a href="2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
<li> <a href="2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||||
|
<li> <a href="2 classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||||
<li> <a href="2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
<li> <a href="2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||||
<li> <a href="2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
<li> <a href="2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||||
<li> <a href="2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
<li> <a href="2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||||
|
@ -183,6 +185,10 @@ local door = GetMoveableByName("door_type4_14")
|
||||||
<td class="name" ><a href="2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></td>
|
<td class="name" ><a href="2 classes/Flow.InventoryItem.html">Flow.InventoryItem</a></td>
|
||||||
<td class="summary">Represents the properties of an object as it appears in the inventory.</td>
|
<td class="summary">Represents the properties of an object as it appears in the inventory.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="2 classes/Flow.LensFlare.html">Flow.LensFlare</a></td>
|
||||||
|
<td class="summary">Represents a lens flare.</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="name" ><a href="2 classes/Flow.Level.html">Flow.Level</a></td>
|
<td class="name" ><a href="2 classes/Flow.Level.html">Flow.Level</a></td>
|
||||||
<td class="summary">Stores level metadata.</td>
|
<td class="summary">Stores level metadata.</td>
|
||||||
|
@ -199,6 +205,10 @@ local door = GetMoveableByName("door_type4_14")
|
||||||
<td class="name" ><a href="2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></td>
|
<td class="name" ><a href="2 classes/Flow.SkyLayer.html">Flow.SkyLayer</a></td>
|
||||||
<td class="summary">Describes a layer of moving clouds.</td>
|
<td class="summary">Describes a layer of moving clouds.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="2 classes/Flow.Starfield.html">Flow.Starfield</a></td>
|
||||||
|
<td class="summary">Represents a starfield.</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="name" ><a href="2 classes/Objects.AIObject.html">Objects.AIObject</a></td>
|
<td class="name" ><a href="2 classes/Objects.AIObject.html">Objects.AIObject</a></td>
|
||||||
<td class="summary">AI object</td>
|
<td class="summary">AI object</td>
|
||||||
|
|
|
@ -75,6 +75,7 @@ local strings =
|
||||||
exit_to_title = { "Exit to Title" },
|
exit_to_title = { "Exit to Title" },
|
||||||
general_actions = { "General Actions" },
|
general_actions = { "General Actions" },
|
||||||
high = { "High" },
|
high = { "High" },
|
||||||
|
high_framerate = { "High Framerate" },
|
||||||
level_secrets_found = { "Secrets Found in Level" },
|
level_secrets_found = { "Secrets Found in Level" },
|
||||||
load_game = { "Load Game" },
|
load_game = { "Load Game" },
|
||||||
low = { "Low" },
|
low = { "Low" },
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
#include "Game/Hud/PickupSummary.h"
|
#include "Game/Hud/PickupSummary.h"
|
||||||
|
|
||||||
#include "Game/pickup/pickup.h"
|
#include "Game/pickup/pickup.h"
|
||||||
|
#include "Game/pickup/pickup_ammo.h"
|
||||||
|
#include "Game/pickup/pickup_consumable.h"
|
||||||
#include "Math/Math.h"
|
#include "Math/Math.h"
|
||||||
#include "Renderer/Renderer.h"
|
#include "Renderer/Renderer.h"
|
||||||
#include "Specific/clock.h"
|
#include "Specific/clock.h"
|
||||||
|
@ -39,6 +41,8 @@ namespace TEN::Hud
|
||||||
constexpr auto ROT_RATE = ANGLE(360.0f / (LIFE_MAX * FPS));
|
constexpr auto ROT_RATE = ANGLE(360.0f / (LIFE_MAX * FPS));
|
||||||
constexpr auto ROT = EulerAngles(0, ROT_RATE, 0);
|
constexpr auto ROT = EulerAngles(0, ROT_RATE, 0);
|
||||||
|
|
||||||
|
StoreInterpolationData();
|
||||||
|
|
||||||
// Move offscreen.
|
// Move offscreen.
|
||||||
if (Life <= 0.0f && isHead)
|
if (Life <= 0.0f && isHead)
|
||||||
{
|
{
|
||||||
|
@ -122,6 +126,20 @@ namespace TEN::Hud
|
||||||
pickup.StringScalar = 0.0f;
|
pickup.StringScalar = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PickupSummaryController::AddDisplayPickup(ItemInfo& item)
|
||||||
|
{
|
||||||
|
// Ammo and consumables are a special case, as internal amount differs from pickup amount.
|
||||||
|
|
||||||
|
int ammoCount = GetDefaultAmmoCount(item.ObjectNumber);
|
||||||
|
int consumableCount = GetDefaultConsumableCount(item.ObjectNumber);
|
||||||
|
|
||||||
|
int count = DISPLAY_PICKUP_COUNT_ARG_DEFAULT;
|
||||||
|
if (ammoCount != NO_VALUE) count = ammoCount;
|
||||||
|
if (consumableCount != NO_VALUE) count = consumableCount;
|
||||||
|
|
||||||
|
AddDisplayPickup(item.ObjectNumber, item.Pose.Position.ToVector3(), item.HitPoints > 0 ? item.HitPoints : count);
|
||||||
|
}
|
||||||
|
|
||||||
void PickupSummaryController::AddDisplayPickup(GAME_OBJECT_ID objectID, const Vector3& pos, unsigned int count)
|
void PickupSummaryController::AddDisplayPickup(GAME_OBJECT_ID objectID, const Vector3& pos, unsigned int count)
|
||||||
{
|
{
|
||||||
// Project 3D position to 2D origin.
|
// Project 3D position to 2D origin.
|
||||||
|
|
|
@ -25,8 +25,21 @@ namespace TEN::Hud
|
||||||
float StringScale = 0.0f;
|
float StringScale = 0.0f;
|
||||||
float StringScalar = 0.0f;
|
float StringScalar = 0.0f;
|
||||||
|
|
||||||
|
Vector2 PrevPosition = Vector2::Zero;
|
||||||
|
EulerAngles PrevOrientation = EulerAngles::Identity;
|
||||||
|
float PrevScale = 0.0f;
|
||||||
|
float PrevOpacity = 0.0f;
|
||||||
|
|
||||||
bool IsOffscreen() const;
|
bool IsOffscreen() const;
|
||||||
void Update(bool isHead);
|
void Update(bool isHead);
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = Position;
|
||||||
|
PrevOrientation = Orientation;
|
||||||
|
PrevScale = Scale;
|
||||||
|
PrevOpacity = Opacity;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class PickupSummaryController
|
class PickupSummaryController
|
||||||
|
@ -46,6 +59,7 @@ namespace TEN::Hud
|
||||||
|
|
||||||
void AddDisplayPickup(GAME_OBJECT_ID objectID, const Vector2& origin, unsigned int count = DISPLAY_PICKUP_COUNT_ARG_DEFAULT);
|
void AddDisplayPickup(GAME_OBJECT_ID objectID, const Vector2& origin, unsigned int count = DISPLAY_PICKUP_COUNT_ARG_DEFAULT);
|
||||||
void AddDisplayPickup(GAME_OBJECT_ID objectID, const Vector3& pos, unsigned int count = DISPLAY_PICKUP_COUNT_ARG_DEFAULT);
|
void AddDisplayPickup(GAME_OBJECT_ID objectID, const Vector3& pos, unsigned int count = DISPLAY_PICKUP_COUNT_ARG_DEFAULT);
|
||||||
|
void AddDisplayPickup(ItemInfo& item);
|
||||||
|
|
||||||
void Update();
|
void Update();
|
||||||
void Draw() const;
|
void Draw() const;
|
||||||
|
|
|
@ -4,10 +4,13 @@
|
||||||
#include "Game/effects/DisplaySprite.h"
|
#include "Game/effects/DisplaySprite.h"
|
||||||
#include "Math/Math.h"
|
#include "Math/Math.h"
|
||||||
#include "Specific/clock.h"
|
#include "Specific/clock.h"
|
||||||
|
#include "Renderer/Renderer.h"
|
||||||
|
|
||||||
using namespace TEN::Effects::DisplaySprite;
|
using namespace TEN::Effects::DisplaySprite;
|
||||||
using namespace TEN::Math;
|
using namespace TEN::Math;
|
||||||
|
|
||||||
|
using TEN::Renderer::g_Renderer;
|
||||||
|
|
||||||
namespace TEN::Hud
|
namespace TEN::Hud
|
||||||
{
|
{
|
||||||
void SpeedometerController::UpdateValue(float value)
|
void SpeedometerController::UpdateValue(float value)
|
||||||
|
@ -28,6 +31,8 @@ namespace TEN::Hud
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StoreInterpolationData();
|
||||||
|
|
||||||
// Update life and updated value status.
|
// Update life and updated value status.
|
||||||
_life = std::clamp(_life + (_hasValueUpdated ? 1.0f : -1.0f), 0.0f, LIFE_MAX * FPS);
|
_life = std::clamp(_life + (_hasValueUpdated ? 1.0f : -1.0f), 0.0f, LIFE_MAX * FPS);
|
||||||
_hasValueUpdated = false;
|
_hasValueUpdated = false;
|
||||||
|
@ -44,7 +49,7 @@ namespace TEN::Hud
|
||||||
void SpeedometerController::Draw() const
|
void SpeedometerController::Draw() const
|
||||||
{
|
{
|
||||||
constexpr auto POS = Vector2(DISPLAY_SPACE_RES.x - (DISPLAY_SPACE_RES.x / 6), DISPLAY_SPACE_RES.y - (DISPLAY_SPACE_RES.y / 10));
|
constexpr auto POS = Vector2(DISPLAY_SPACE_RES.x - (DISPLAY_SPACE_RES.x / 6), DISPLAY_SPACE_RES.y - (DISPLAY_SPACE_RES.y / 10));
|
||||||
constexpr auto ORIENT_OFFSET = ANGLE(90.0f);
|
constexpr auto POINTER_ANGLE_OFFSET = ANGLE(90.0f);
|
||||||
constexpr auto SCALE = Vector2(0.35f);
|
constexpr auto SCALE = Vector2(0.35f);
|
||||||
constexpr auto DIAL_ELEMENT_SPRITE_ID = 0;
|
constexpr auto DIAL_ELEMENT_SPRITE_ID = 0;
|
||||||
constexpr auto POINTER_ELEMENT_SPRITE_ID = 1;
|
constexpr auto POINTER_ELEMENT_SPRITE_ID = 1;
|
||||||
|
@ -56,19 +61,22 @@ namespace TEN::Hud
|
||||||
if (_life <= 0.0f)
|
if (_life <= 0.0f)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto color = Color(1.0f, 1.0f, 1.0f, _opacity);
|
short pointerAngle = (short)Lerp(_prevPointerAngle, _pointerAngle, g_Renderer.GetInterpolationFactor());
|
||||||
|
auto color = Color(1.0f, 1.0f, 1.0f, Lerp(_prevOpacity, _opacity, g_Renderer.GetInterpolationFactor()));
|
||||||
|
|
||||||
// Draw dial.
|
// Draw dial.
|
||||||
AddDisplaySprite(
|
AddDisplaySprite(
|
||||||
ID_SPEEDOMETER, DIAL_ELEMENT_SPRITE_ID,
|
ID_SPEEDOMETER, DIAL_ELEMENT_SPRITE_ID,
|
||||||
POS, 0, SCALE, color,
|
POS, 0, SCALE, color,
|
||||||
DIAL_PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fit, BlendMode::AlphaBlend);
|
DIAL_PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fit, BlendMode::AlphaBlend,
|
||||||
|
DisplaySpritePhase::Draw);
|
||||||
|
|
||||||
// Draw pointer.
|
// Draw pointer.
|
||||||
AddDisplaySprite(
|
AddDisplaySprite(
|
||||||
ID_SPEEDOMETER, POINTER_ELEMENT_SPRITE_ID,
|
ID_SPEEDOMETER, POINTER_ELEMENT_SPRITE_ID,
|
||||||
POS, _pointerAngle + ORIENT_OFFSET, SCALE, color,
|
POS, pointerAngle + POINTER_ANGLE_OFFSET, SCALE, color,
|
||||||
POINTER_PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fit, BlendMode::AlphaBlend);
|
POINTER_PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fit, BlendMode::AlphaBlend,
|
||||||
|
DisplaySpritePhase::Draw);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpeedometerController::Clear()
|
void SpeedometerController::Clear()
|
||||||
|
|
|
@ -18,6 +18,15 @@ namespace TEN::Hud
|
||||||
float _opacity = 0.0f;
|
float _opacity = 0.0f;
|
||||||
float _life = 0.0f;
|
float _life = 0.0f;
|
||||||
|
|
||||||
|
short _prevPointerAngle = 0;
|
||||||
|
float _prevOpacity = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
_prevPointerAngle = _pointerAngle;
|
||||||
|
_prevOpacity = _opacity;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Utilities
|
// Utilities
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,9 @@ namespace TEN::Hud
|
||||||
constexpr auto ORIENT_LERP_ALPHA = 0.1f;
|
constexpr auto ORIENT_LERP_ALPHA = 0.1f;
|
||||||
constexpr auto RADIUS_LERP_ALPHA = 0.2f;
|
constexpr auto RADIUS_LERP_ALPHA = 0.2f;
|
||||||
|
|
||||||
|
if (Position.has_value())
|
||||||
|
StoreInterpolationData();
|
||||||
|
|
||||||
// Update active status.
|
// Update active status.
|
||||||
IsActive = isActive;
|
IsActive = isActive;
|
||||||
|
|
||||||
|
@ -133,30 +136,36 @@ namespace TEN::Hud
|
||||||
constexpr auto STATIC_ELEMENT_SPRITE_ID = 0;
|
constexpr auto STATIC_ELEMENT_SPRITE_ID = 0;
|
||||||
constexpr auto SEGMENT_ELEMENT_SPRITE_ID = 1;
|
constexpr auto SEGMENT_ELEMENT_SPRITE_ID = 1;
|
||||||
constexpr auto PRIORITY = 0; // TODO: Check later. May interfere with Lua display sprites. -- Sezz 2023.10.06
|
constexpr auto PRIORITY = 0; // TODO: Check later. May interfere with Lua display sprites. -- Sezz 2023.10.06
|
||||||
constexpr auto ALIGN_MODE = DisplaySpriteAlignMode::Center;
|
|
||||||
constexpr auto SCALE_MODE = DisplaySpriteScaleMode::Fill;
|
|
||||||
constexpr auto BLEND_MODE = BlendMode::Additive;
|
|
||||||
|
|
||||||
if (!Position.has_value())
|
if (!Position.has_value())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
auto pos0 = Vector2::Lerp(PrevPosition, *Position, g_Renderer.GetInterpolationFactor());
|
||||||
|
short orient0 = PrevOrientation + Geometry::GetShortestAngle(PrevOrientation, Orientation) * g_Renderer.GetInterpolationFactor();
|
||||||
|
float scale = Lerp(PrevScale, Scale, g_Renderer.GetInterpolationFactor());
|
||||||
|
auto color = Color::Lerp(PrevColor, Color, g_Renderer.GetInterpolationFactor());
|
||||||
|
|
||||||
// Draw main static element.
|
// Draw main static element.
|
||||||
AddDisplaySprite(
|
AddDisplaySprite(
|
||||||
SPRITE_SEQUENCE_OBJECT_ID, STATIC_ELEMENT_SPRITE_ID,
|
SPRITE_SEQUENCE_OBJECT_ID, STATIC_ELEMENT_SPRITE_ID,
|
||||||
*Position, Orientation, Vector2(Scale), Color,
|
pos0, orient0, Vector2(scale), color,
|
||||||
PRIORITY, ALIGN_MODE, SCALE_MODE, BLEND_MODE);
|
PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fill,
|
||||||
|
BlendMode::Additive, DisplaySpritePhase::Draw);
|
||||||
|
|
||||||
// Draw animated outer segment elements.
|
// Draw animated outer segment elements.
|
||||||
for (const auto& segment : Segments)
|
for (int i = 0; i < Segments.size(); i++)
|
||||||
{
|
{
|
||||||
auto pos = *Position + segment.PosOffset;
|
const auto& segment = Segments[i];
|
||||||
short orient = Orientation + segment.OrientOffset;
|
const auto& prevSegment = PrevSegments[i];
|
||||||
auto scale = Vector2(Scale / 2);
|
|
||||||
|
auto pos1 = pos0 + Vector2::Lerp(prevSegment.PosOffset, segment.PosOffset, g_Renderer.GetInterpolationFactor());
|
||||||
|
short orient1 = orient0 + (prevSegment.OrientOffset + (Geometry::GetShortestAngle(prevSegment.OrientOffset, segment.OrientOffset) * g_Renderer.GetInterpolationFactor()));
|
||||||
|
|
||||||
AddDisplaySprite(
|
AddDisplaySprite(
|
||||||
SPRITE_SEQUENCE_OBJECT_ID, SEGMENT_ELEMENT_SPRITE_ID,
|
SPRITE_SEQUENCE_OBJECT_ID, SEGMENT_ELEMENT_SPRITE_ID,
|
||||||
pos, orient, scale, Color,
|
pos1, orient1, Vector2(scale / 2), color,
|
||||||
PRIORITY, ALIGN_MODE, SCALE_MODE, BLEND_MODE);
|
PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fill,
|
||||||
|
BlendMode::Additive, DisplaySpritePhase::Draw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,23 +184,23 @@ namespace TEN::Hud
|
||||||
|
|
||||||
// Loop over player targets.
|
// Loop over player targets.
|
||||||
auto itemNumbers = std::vector<int>{};
|
auto itemNumbers = std::vector<int>{};
|
||||||
for (const auto* itemPtr : player.TargetList)
|
for (const auto* item : player.TargetList)
|
||||||
{
|
{
|
||||||
if (itemPtr == nullptr)
|
if (item == nullptr)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Collect item number.
|
// Collect item number.
|
||||||
if (itemPtr->HitPoints != NOT_TARGETABLE)
|
if (item->HitPoints != NOT_TARGETABLE)
|
||||||
itemNumbers.push_back(itemPtr->Index);
|
itemNumbers.push_back(item->Index);
|
||||||
|
|
||||||
// Find crosshair at item number key.
|
// Find crosshair at item number key.
|
||||||
auto it = _crosshairs.find(itemPtr->Index);
|
auto it = _crosshairs.find(item->Index);
|
||||||
if (it == _crosshairs.end())
|
if (it == _crosshairs.end())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Set crosshair as primary or peripheral.
|
// Set crosshair as primary or peripheral.
|
||||||
auto& crosshair = it->second;
|
auto& crosshair = it->second;
|
||||||
if (player.TargetEntity != nullptr && itemPtr->Index == player.TargetEntity->Index)
|
if (player.TargetEntity != nullptr && item->Index == player.TargetEntity->Index)
|
||||||
{
|
{
|
||||||
crosshair.SetPrimary();
|
crosshair.SetPrimary();
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,12 @@ namespace TEN::Hud
|
||||||
|
|
||||||
std::array<SegmentData, SEGMENT_COUNT> Segments = {};
|
std::array<SegmentData, SEGMENT_COUNT> Segments = {};
|
||||||
|
|
||||||
|
Vector2 PrevPosition = Vector2::Zero;
|
||||||
|
short PrevOrientation = 0;
|
||||||
|
float PrevScale = 0.0f;
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
std::array<SegmentData, SEGMENT_COUNT> PrevSegments = {};
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
|
||||||
float GetScale(float cameraDist) const;
|
float GetScale(float cameraDist) const;
|
||||||
|
@ -51,6 +57,15 @@ namespace TEN::Hud
|
||||||
|
|
||||||
void Update(const Vector3& targetPos, bool isActive, bool doPulse);
|
void Update(const Vector3& targetPos, bool isActive, bool doPulse);
|
||||||
void Draw() const;
|
void Draw() const;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = *Position;
|
||||||
|
PrevOrientation = Orientation;
|
||||||
|
PrevScale = Scale;
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevSegments = Segments;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class TargetHighlighterController
|
class TargetHighlighterController
|
||||||
|
|
|
@ -59,8 +59,8 @@ using namespace TEN::Gui;
|
||||||
|
|
||||||
using TEN::Renderer::g_Renderer;
|
using TEN::Renderer::g_Renderer;
|
||||||
|
|
||||||
LaraInfo Lara = {};
|
LaraInfo Lara = {};
|
||||||
ItemInfo* LaraItem;
|
ItemInfo* LaraItem = nullptr;
|
||||||
CollisionInfo LaraCollision = {};
|
CollisionInfo LaraCollision = {};
|
||||||
|
|
||||||
void LaraControl(ItemInfo* item, CollisionInfo* coll)
|
void LaraControl(ItemInfo* item, CollisionInfo* coll)
|
||||||
|
@ -628,6 +628,7 @@ void UpdateLara(ItemInfo* item, bool isTitle)
|
||||||
|
|
||||||
// Control player.
|
// Control player.
|
||||||
InItemControlLoop = true;
|
InItemControlLoop = true;
|
||||||
|
|
||||||
LaraControl(item, &LaraCollision);
|
LaraControl(item, &LaraCollision);
|
||||||
HandlePlayerFlyCheat(*item);
|
HandlePlayerFlyCheat(*item);
|
||||||
InItemControlLoop = false;
|
InItemControlLoop = false;
|
||||||
|
|
|
@ -93,8 +93,8 @@ constexpr auto WADE_WATER_DEPTH = STEPUP_HEIGHT;
|
||||||
constexpr auto SWIM_WATER_DEPTH = CLICK(2.75f);
|
constexpr auto SWIM_WATER_DEPTH = CLICK(2.75f);
|
||||||
constexpr auto SLOPE_DIFFERENCE = 60;
|
constexpr auto SLOPE_DIFFERENCE = 60;
|
||||||
|
|
||||||
extern LaraInfo Lara;
|
extern LaraInfo Lara;
|
||||||
extern ItemInfo* LaraItem;
|
extern ItemInfo* LaraItem;
|
||||||
extern CollisionInfo LaraCollision;
|
extern CollisionInfo LaraCollision;
|
||||||
|
|
||||||
void LaraControl(ItemInfo* item, CollisionInfo* coll);
|
void LaraControl(ItemInfo* item, CollisionInfo* coll);
|
||||||
|
|
|
@ -1044,6 +1044,8 @@ void HandlePlayerElevationChange(ItemInfo* item, CollisionInfo* coll)
|
||||||
if (CanStepUp(*item, *coll))
|
if (CanStepUp(*item, *coll))
|
||||||
{
|
{
|
||||||
item->Animation.TargetState = LS_STEP_UP;
|
item->Animation.TargetState = LS_STEP_UP;
|
||||||
|
item->DisableInterpolation = true;
|
||||||
|
|
||||||
if (GetStateDispatch(item, GetAnimData(*item)))
|
if (GetStateDispatch(item, GetAnimData(*item)))
|
||||||
{
|
{
|
||||||
item->Pose.Position.y += coll->Middle.Floor;
|
item->Pose.Position.y += coll->Middle.Floor;
|
||||||
|
|
|
@ -79,7 +79,14 @@ ObjectInfo& ObjectHandler::GetFirstAvailableObject()
|
||||||
// NOTE: JointRotationFlags allows bones to be rotated with CreatureJoint().
|
// NOTE: JointRotationFlags allows bones to be rotated with CreatureJoint().
|
||||||
void ObjectInfo::SetBoneRotationFlags(int boneID, int flags)
|
void ObjectInfo::SetBoneRotationFlags(int boneID, int flags)
|
||||||
{
|
{
|
||||||
g_Level.Bones[boneIndex + (boneID * 4)] |= flags;
|
int index = boneIndex + (boneID * 4);
|
||||||
|
if (index < 0 || index >= g_Level.Bones.size())
|
||||||
|
{
|
||||||
|
TENLog("Failed to set rotation flag for bone ID " + std::to_string(boneID), LogLevel::Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_Level.Bones[index] |= flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectInfo::SetHitEffect(HitEffect hitEffect)
|
void ObjectInfo::SetHitEffect(HitEffect hitEffect)
|
||||||
|
|
|
@ -16,16 +16,16 @@ constexpr auto MAX_STATICS = 1000;
|
||||||
|
|
||||||
enum JointRotationFlags
|
enum JointRotationFlags
|
||||||
{
|
{
|
||||||
ROT_X = (1 << 2),
|
ROT_X = 1 << 2,
|
||||||
ROT_Y = (1 << 3),
|
ROT_Y = 1 << 3,
|
||||||
ROT_Z = (1 << 4)
|
ROT_Z = 1 << 4
|
||||||
};
|
};
|
||||||
|
|
||||||
// Unused.
|
// Unused.
|
||||||
enum ShatterFlags
|
enum ShatterFlags
|
||||||
{
|
{
|
||||||
NoCollision = (1 << 0),
|
NoCollision = 1 << 0,
|
||||||
Shatterable = (1 << 1)
|
Shatterable = 1 << 1
|
||||||
};
|
};
|
||||||
|
|
||||||
// Custom LOT definition for Creature. Used in InitializeSlot() in lot.cpp.
|
// Custom LOT definition for Creature. Used in InitializeSlot() in lot.cpp.
|
||||||
|
@ -39,10 +39,11 @@ enum class LotType
|
||||||
HumanPlusJump,
|
HumanPlusJump,
|
||||||
HumanPlusJumpAndMonkey,
|
HumanPlusJumpAndMonkey,
|
||||||
Flyer,
|
Flyer,
|
||||||
Blockable, // For large creatures such as trex and shiva.
|
Blockable, // For large creatures such as trex and shiva.
|
||||||
Spider, // Only 2 block vault allowed.
|
Spider, // Only 2 block vault allowed.
|
||||||
Ape, // Only 2 block vault allowed.
|
Ape, // Only 2 block vault allowed.
|
||||||
SnowmobileGun // Only 1 block vault allowed and 4 block drop max.
|
SnowmobileGun, // Only 1 block vault allowed and 4 block drop max.
|
||||||
|
EnemyJeep
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class HitEffect
|
enum class HitEffect
|
||||||
|
|
|
@ -62,6 +62,8 @@ static void PerformAnimCommands(ItemInfo& item, bool isFrameBased)
|
||||||
{
|
{
|
||||||
UpdateItemRoom(item.Index);
|
UpdateItemRoom(item.Index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
item.DisableInterpolation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
commandDataPtr += 3;
|
commandDataPtr += 3;
|
||||||
|
@ -210,6 +212,13 @@ static void PerformAnimCommands(ItemInfo& item, bool isFrameBased)
|
||||||
commandDataPtr += 2;
|
commandDataPtr += 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AnimCommandType::DisableInterpolation:
|
||||||
|
if (isFrameBased && item.Animation.FrameNumber == commandDataPtr[0])
|
||||||
|
item.DisableInterpolation = true;
|
||||||
|
|
||||||
|
commandDataPtr += 1;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,8 @@ enum class AnimCommandType
|
||||||
AttackReady,
|
AttackReady,
|
||||||
Deactivate,
|
Deactivate,
|
||||||
SoundEffect,
|
SoundEffect,
|
||||||
Flipeffect
|
Flipeffect,
|
||||||
|
DisableInterpolation
|
||||||
};
|
};
|
||||||
|
|
||||||
struct AnimFrame
|
struct AnimFrame
|
||||||
|
|
|
@ -194,15 +194,8 @@ void LookCamera(ItemInfo& item, const CollisionInfo& coll)
|
||||||
|
|
||||||
void LookAt(CAMERA_INFO* cam, short roll)
|
void LookAt(CAMERA_INFO* cam, short roll)
|
||||||
{
|
{
|
||||||
auto pos = cam->pos.ToVector3();
|
cam->Fov = TO_RAD(CurrentFOV / 1.333333f);
|
||||||
auto target = cam->target.ToVector3();
|
cam->Roll = TO_RAD(roll);
|
||||||
auto up = Vector3::Down;
|
|
||||||
float fov = TO_RAD(CurrentFOV / 1.333333f);
|
|
||||||
float r = TO_RAD(roll);
|
|
||||||
|
|
||||||
float levelFarView = g_GameFlow->GetLevel(CurrentLevel)->GetFarView() * float(BLOCK(1));
|
|
||||||
|
|
||||||
g_Renderer.UpdateCameraMatrices(cam, r, fov, levelFarView);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlterFOV(short value, bool store)
|
void AlterFOV(short value, bool store)
|
||||||
|
@ -248,13 +241,13 @@ void InitializeCamera()
|
||||||
|
|
||||||
Camera.targetDistance = BLOCK(1.5f);
|
Camera.targetDistance = BLOCK(1.5f);
|
||||||
Camera.item = nullptr;
|
Camera.item = nullptr;
|
||||||
Camera.numberFrames = 1;
|
|
||||||
Camera.type = CameraType::Chase;
|
Camera.type = CameraType::Chase;
|
||||||
Camera.speed = 1;
|
Camera.speed = 1;
|
||||||
Camera.flags = CF_NONE;
|
Camera.flags = CF_NONE;
|
||||||
Camera.bounce = 0;
|
Camera.bounce = 0;
|
||||||
Camera.number = -1;
|
Camera.number = -1;
|
||||||
Camera.fixedCamera = false;
|
Camera.fixedCamera = false;
|
||||||
|
Camera.DisableInterpolation = true;
|
||||||
|
|
||||||
AlterFOV(ANGLE(DEFAULT_FOV));
|
AlterFOV(ANGLE(DEFAULT_FOV));
|
||||||
|
|
||||||
|
@ -1171,7 +1164,6 @@ void CalculateCamera(const CollisionInfo& coll)
|
||||||
Lara.ExtraTorsoRot.x = Lara.ExtraHeadRot.x;
|
Lara.ExtraTorsoRot.x = Lara.ExtraHeadRot.x;
|
||||||
|
|
||||||
Lara.Control.Look.Orientation = lookOrient;
|
Lara.Control.Look.Orientation = lookOrient;
|
||||||
|
|
||||||
Camera.type = CameraType::Look;
|
Camera.type = CameraType::Look;
|
||||||
Camera.item->LookedAt = true;
|
Camera.item->LookedAt = true;
|
||||||
}
|
}
|
||||||
|
@ -1294,6 +1286,8 @@ void CalculateCamera(const CollisionInfo& coll)
|
||||||
|
|
||||||
Camera.fixedCamera = isFixedCamera;
|
Camera.fixedCamera = isFixedCamera;
|
||||||
Camera.last = Camera.number;
|
Camera.last = Camera.number;
|
||||||
|
Camera.DisableInterpolation = (Camera.DisableInterpolation || Camera.lastType != Camera.type);
|
||||||
|
Camera.lastType = Camera.type;
|
||||||
|
|
||||||
if ((Camera.type != CameraType::Heavy || Camera.timer == -1) &&
|
if ((Camera.type != CameraType::Heavy || Camera.timer == -1) &&
|
||||||
LaraItem->HitPoints > 0)
|
LaraItem->HitPoints > 0)
|
||||||
|
@ -1521,6 +1515,15 @@ void ItemsCollideCamera()
|
||||||
staticList.clear();
|
staticList.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PrepareCamera()
|
||||||
|
{
|
||||||
|
if (TrackCameraInit)
|
||||||
|
{
|
||||||
|
UseSpotCam = false;
|
||||||
|
AlterFOV(LastFOV);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void UpdateCamera()
|
void UpdateCamera()
|
||||||
{
|
{
|
||||||
if (UseSpotCam)
|
if (UseSpotCam)
|
||||||
|
@ -1534,6 +1537,9 @@ void UpdateCamera()
|
||||||
TrackCameraInit = false;
|
TrackCameraInit = false;
|
||||||
CalculateCamera(LaraCollision);
|
CalculateCamera(LaraCollision);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update cameras matrices there, after having done all the possible camera logic.
|
||||||
|
g_Renderer.UpdateCameraMatrices(&Camera, BLOCK(g_GameFlow->GetLevel(CurrentLevel)->GetFarView()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateMikePos(const ItemInfo& item)
|
void UpdateMikePos(const ItemInfo& item)
|
||||||
|
|
|
@ -24,11 +24,11 @@ struct CAMERA_INFO
|
||||||
GameVector target;
|
GameVector target;
|
||||||
CameraType type;
|
CameraType type;
|
||||||
CameraType oldType;
|
CameraType oldType;
|
||||||
|
CameraType lastType;
|
||||||
int shift;
|
int shift;
|
||||||
int flags;
|
int flags;
|
||||||
bool fixedCamera;
|
bool fixedCamera;
|
||||||
bool underwater;
|
bool underwater;
|
||||||
int numberFrames;
|
|
||||||
int bounce;
|
int bounce;
|
||||||
int targetDistance;
|
int targetDistance;
|
||||||
short targetAngle;
|
short targetAngle;
|
||||||
|
@ -46,6 +46,11 @@ struct CAMERA_INFO
|
||||||
ItemInfo* lastItem;
|
ItemInfo* lastItem;
|
||||||
int mikeAtLara;
|
int mikeAtLara;
|
||||||
Vector3i mikePos;
|
Vector3i mikePos;
|
||||||
|
|
||||||
|
float Roll = 0.0f;
|
||||||
|
float Fov = 0.0f;
|
||||||
|
|
||||||
|
bool DisableInterpolation = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ObjectCameraInfo
|
struct ObjectCameraInfo
|
||||||
|
@ -113,6 +118,7 @@ void SetScreenFadeOut(float speed, bool force = false);
|
||||||
void SetScreenFadeIn(float speed, bool force = false);
|
void SetScreenFadeIn(float speed, bool force = false);
|
||||||
void SetCinematicBars(float height, float speed);
|
void SetCinematicBars(float height, float speed);
|
||||||
void ClearCinematicBars();
|
void ClearCinematicBars();
|
||||||
|
void PrepareCamera();
|
||||||
void UpdateCamera();
|
void UpdateCamera();
|
||||||
void UpdateFadeScreenAndCinematicBars();
|
void UpdateFadeScreenAndCinematicBars();
|
||||||
void UpdateMikePos(const ItemInfo& item);
|
void UpdateMikePos(const ItemInfo& item);
|
||||||
|
|
|
@ -1863,9 +1863,10 @@ void DoObjectCollision(ItemInfo* item, CollisionInfo* coll)
|
||||||
if (linkItem.HitPoints <= 0 || linkItem.HitPoints == NOT_TARGETABLE)
|
if (linkItem.HitPoints <= 0 || linkItem.HitPoints == NOT_TARGETABLE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (isHarmless || abs(item->Animation.Velocity.z) < VEHICLE_COLLISION_TERMINAL_VELOCITY)
|
if (isHarmless || abs(item->Animation.Velocity.z) < VEHICLE_COLLISION_TERMINAL_VELOCITY ||
|
||||||
|
object.damageType == DamageMode::None)
|
||||||
{
|
{
|
||||||
// If vehicle is harmless or speed is too low, just push enemy.
|
// If vehicle is harmless, enemy is non-damageable, or speed is too low, push enemy.
|
||||||
ItemPushItem(&linkItem, item, coll, false, 0);
|
ItemPushItem(&linkItem, item, coll, false, 0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,16 +204,21 @@ int FloorInfo::GetSurfaceHeight(const Vector3i& pos, bool isFloor) const
|
||||||
|
|
||||||
// 2.1) Get bridge surface height.
|
// 2.1) Get bridge surface height.
|
||||||
auto bridgeSurfaceHeight = isFloor ? bridge.GetFloorHeight(bridgeItem, pos) : bridge.GetCeilingHeight(bridgeItem, pos);
|
auto bridgeSurfaceHeight = isFloor ? bridge.GetFloorHeight(bridgeItem, pos) : bridge.GetCeilingHeight(bridgeItem, pos);
|
||||||
|
|
||||||
if (!bridgeSurfaceHeight.has_value())
|
if (!bridgeSurfaceHeight.has_value())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// Use bridge midpoint to decide whether to return bridge height or room height, in case probe point
|
||||||
|
// is located within the bridge. Without it, dynamic bridges may fail while Lara is standing on them.
|
||||||
|
int midpoint = (bridge.GetFloorBorder(bridgeItem) + bridge.GetCeilingBorder(bridgeItem)) / 2;
|
||||||
|
|
||||||
// 2.2) Track closest floor or ceiling height.
|
// 2.2) Track closest floor or ceiling height.
|
||||||
if (isFloor)
|
if (isFloor)
|
||||||
{
|
{
|
||||||
// Test if bridge floor height is closer.
|
// Test if bridge floor height is closer.
|
||||||
if (*bridgeSurfaceHeight >= pos.y && // Bridge floor height is below position.
|
if (midpoint >= pos.y && // Bridge midpoint is below position.
|
||||||
*bridgeSurfaceHeight < floorHeight && // Bridge floor height is above current closest floor height.
|
*bridgeSurfaceHeight < floorHeight && // Bridge floor height is above current closest floor height.
|
||||||
*bridgeSurfaceHeight >= ceilingHeight) // Bridge ceiling height is below sector ceiling height.
|
*bridgeSurfaceHeight >= ceilingHeight) // Bridge ceiling height is below sector ceiling height.
|
||||||
{
|
{
|
||||||
floorHeight = *bridgeSurfaceHeight;
|
floorHeight = *bridgeSurfaceHeight;
|
||||||
}
|
}
|
||||||
|
@ -221,7 +226,7 @@ int FloorInfo::GetSurfaceHeight(const Vector3i& pos, bool isFloor) const
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Test if bridge ceiling height is closer.
|
// Test if bridge ceiling height is closer.
|
||||||
if (*bridgeSurfaceHeight <= pos.y && // Bridge ceiling height is above position.
|
if (midpoint <= pos.y && // Bridge midpoint is above position.
|
||||||
*bridgeSurfaceHeight > ceilingHeight && // Bridge ceiling height is below current closest ceiling height.
|
*bridgeSurfaceHeight > ceilingHeight && // Bridge ceiling height is below current closest ceiling height.
|
||||||
*bridgeSurfaceHeight <= floorHeight) // Bridge floor height is above sector floor height.
|
*bridgeSurfaceHeight <= floorHeight) // Bridge floor height is above sector floor height.
|
||||||
{
|
{
|
||||||
|
|
|
@ -1297,11 +1297,15 @@ void GetAITarget(CreatureInfo* creature)
|
||||||
{
|
{
|
||||||
auto* enemy = creature->Enemy;
|
auto* enemy = creature->Enemy;
|
||||||
|
|
||||||
short enemyObjectNumber;
|
int enemyObjectID = 0;
|
||||||
if (enemy)
|
if (enemy)
|
||||||
enemyObjectNumber = enemy->ObjectNumber;
|
{
|
||||||
|
enemyObjectID = enemy->ObjectNumber;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
enemyObjectNumber = NO_VALUE;
|
{
|
||||||
|
enemyObjectID = NO_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
auto* item = &g_Level.Items[creature->ItemNumber];
|
auto* item = &g_Level.Items[creature->ItemNumber];
|
||||||
|
|
||||||
|
@ -1329,12 +1333,12 @@ void GetAITarget(CreatureInfo* creature)
|
||||||
}
|
}
|
||||||
else if (!creature->Patrol)
|
else if (!creature->Patrol)
|
||||||
{
|
{
|
||||||
if (enemyObjectNumber != ID_AI_PATROL1)
|
if (enemyObjectID != ID_AI_PATROL1)
|
||||||
FindAITargetObject(creature, ID_AI_PATROL1);
|
FindAITargetObject(*item, ID_AI_PATROL1);
|
||||||
}
|
}
|
||||||
else if (enemyObjectNumber != ID_AI_PATROL2)
|
else if (enemyObjectID != ID_AI_PATROL2)
|
||||||
{
|
{
|
||||||
FindAITargetObject(creature, ID_AI_PATROL2);
|
FindAITargetObject(*item, ID_AI_PATROL2);
|
||||||
}
|
}
|
||||||
else if (abs(enemy->Pose.Position.x - item->Pose.Position.x) < REACHED_GOAL_RADIUS &&
|
else if (abs(enemy->Pose.Position.x - item->Pose.Position.x) < REACHED_GOAL_RADIUS &&
|
||||||
abs(enemy->Pose.Position.y - item->Pose.Position.y) < REACHED_GOAL_RADIUS &&
|
abs(enemy->Pose.Position.y - item->Pose.Position.y) < REACHED_GOAL_RADIUS &&
|
||||||
|
@ -1350,8 +1354,8 @@ void GetAITarget(CreatureInfo* creature)
|
||||||
// First if was removed probably after TR3 and was it used by monkeys?
|
// First if was removed probably after TR3 and was it used by monkeys?
|
||||||
/*if (!(item->aiBits & MODIFY) && !creature->hurtByLara)
|
/*if (!(item->aiBits & MODIFY) && !creature->hurtByLara)
|
||||||
creature->enemy = LaraItem;
|
creature->enemy = LaraItem;
|
||||||
else*/ if (enemyObjectNumber != ID_AI_AMBUSH)
|
else*/ if (enemyObjectID != ID_AI_AMBUSH)
|
||||||
FindAITargetObject(creature, ID_AI_AMBUSH);
|
FindAITargetObject(*item, ID_AI_AMBUSH);
|
||||||
/*else if (item->objectNumber == ID_MONKEY)
|
/*else if (item->objectNumber == ID_MONKEY)
|
||||||
return;*/
|
return;*/
|
||||||
else if (abs(enemy->Pose.Position.x - item->Pose.Position.x) < REACHED_GOAL_RADIUS &&
|
else if (abs(enemy->Pose.Position.x - item->Pose.Position.x) < REACHED_GOAL_RADIUS &&
|
||||||
|
@ -1362,6 +1366,7 @@ void GetAITarget(CreatureInfo* creature)
|
||||||
creature->ReachedGoal = true;
|
creature->ReachedGoal = true;
|
||||||
creature->Enemy = LaraItem;
|
creature->Enemy = LaraItem;
|
||||||
item->AIBits &= ~(AMBUSH /* | MODIFY*/);
|
item->AIBits &= ~(AMBUSH /* | MODIFY*/);
|
||||||
|
|
||||||
if (item->AIBits != MODIFY)
|
if (item->AIBits != MODIFY)
|
||||||
{
|
{
|
||||||
item->AIBits |= GUARD;
|
item->AIBits |= GUARD;
|
||||||
|
@ -1381,9 +1386,9 @@ void GetAITarget(CreatureInfo* creature)
|
||||||
{
|
{
|
||||||
item->AIBits &= ~FOLLOW;
|
item->AIBits &= ~FOLLOW;
|
||||||
}
|
}
|
||||||
else if (enemyObjectNumber != ID_AI_FOLLOW)
|
else if (enemyObjectID != ID_AI_FOLLOW)
|
||||||
{
|
{
|
||||||
FindAITargetObject(creature, ID_AI_FOLLOW);
|
FindAITargetObject(*item, ID_AI_FOLLOW);
|
||||||
}
|
}
|
||||||
else if (abs(enemy->Pose.Position.x - item->Pose.Position.x) < REACHED_GOAL_RADIUS &&
|
else if (abs(enemy->Pose.Position.x - item->Pose.Position.x) < REACHED_GOAL_RADIUS &&
|
||||||
abs(enemy->Pose.Position.y - item->Pose.Position.y) < REACHED_GOAL_RADIUS &&
|
abs(enemy->Pose.Position.y - item->Pose.Position.y) < REACHED_GOAL_RADIUS &&
|
||||||
|
@ -1393,17 +1398,18 @@ void GetAITarget(CreatureInfo* creature)
|
||||||
item->AIBits &= ~FOLLOW;
|
item->AIBits &= ~FOLLOW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*else if (item->objectNumber == ID_MONKEY && item->carriedItem == NO_VALUE)
|
|
||||||
|
/*else if (item->ObjectNumber == ID_MONKEY && item->CarriedItem == NO_VALUE)
|
||||||
{
|
{
|
||||||
if (item->aiBits != MODIFY)
|
if (item->AIBits != MODIFY)
|
||||||
{
|
{
|
||||||
if (enemyObjectNumber != ID_SMALLMEDI_ITEM)
|
if (enemyObjectID != ID_SMALLMEDI_ITEM)
|
||||||
FindAITargetObject(creature, ID_SMALLMEDI_ITEM);
|
FindAITargetObject(*item, ID_SMALLMEDI_ITEM);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (enemyObjectNumber != ID_KEY_ITEM4)
|
if (enemyObjectID != ID_KEY_ITEM4)
|
||||||
FindAITargetObject(creature, ID_KEY_ITEM4);
|
FindAITargetObject(*item, ID_KEY_ITEM4);
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
@ -1432,69 +1438,101 @@ void FindAITarget(CreatureInfo* creature, short objectNumber)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindAITargetObject(CreatureInfo* creature, int objectNumber)
|
void FindAITargetObject(ItemInfo& item, GAME_OBJECT_ID objectID, std::optional<int> ocb, std::optional<bool> checkSameZone)
|
||||||
{
|
{
|
||||||
const auto& item = g_Level.Items[creature->ItemNumber];
|
auto& creature = *GetCreatureInfo(&item);
|
||||||
|
|
||||||
FindAITargetObject(creature, objectNumber, item.ItemFlags[3], true);
|
auto data = AITargetData{};
|
||||||
|
data.CheckDistance = false;
|
||||||
|
data.CheckOcb = ocb.has_value();
|
||||||
|
data.ObjectID = objectID;
|
||||||
|
data.Ocb = ocb.value_or(item.ItemFlags[3]);
|
||||||
|
data.CheckSameZone = checkSameZone.value_or(true);
|
||||||
|
|
||||||
|
if (FindAITargetObject(item, data))
|
||||||
|
{
|
||||||
|
*creature.AITarget = data.FoundItem;
|
||||||
|
creature.Enemy = creature.AITarget;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindAITargetObject(CreatureInfo* creature, int objectNumber, int ocb, bool checkSameZone)
|
bool FindAITargetObject(ItemInfo& item, AITargetData& data)
|
||||||
{
|
{
|
||||||
auto& item = g_Level.Items[creature->ItemNumber];
|
|
||||||
|
|
||||||
if (g_Level.AIObjects.empty())
|
if (g_Level.AIObjects.empty())
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
AI_OBJECT* foundObject = nullptr;
|
auto& creature = *GetCreatureInfo(&item);
|
||||||
|
|
||||||
for (auto& aiObject : g_Level.AIObjects)
|
const AI_OBJECT* foundAIObject = nullptr;
|
||||||
|
|
||||||
|
for (const auto& aiObject : g_Level.AIObjects)
|
||||||
{
|
{
|
||||||
if (aiObject.objectNumber == objectNumber &&
|
// Check if object IDs match.
|
||||||
aiObject.triggerFlags == ocb &&
|
if (aiObject.objectNumber != data.ObjectID)
|
||||||
aiObject.roomNumber != NO_VALUE)
|
continue;
|
||||||
|
|
||||||
|
// Check if room is valid.
|
||||||
|
if (aiObject.roomNumber == NO_VALUE)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Check if distance is valid.
|
||||||
|
if (data.CheckDistance)
|
||||||
{
|
{
|
||||||
int* zone = g_Level.Zones[(int)creature->LOT.Zone][(int)FlipStatus].data();
|
if (Vector3i::Distance(item.Pose.Position, aiObject.pos.Position) > data.DistanceMax)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if OCBs match (useful for pathfinding).
|
||||||
|
if (data.CheckOcb)
|
||||||
|
{
|
||||||
|
if (aiObject.triggerFlags != data.Ocb)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if zone IDs match.
|
||||||
|
if (data.CheckSameZone)
|
||||||
|
{
|
||||||
|
int* zone = g_Level.Zones[(int)creature.LOT.Zone][(int)FlipStatus].data();
|
||||||
auto* room = &g_Level.Rooms[item.RoomNumber];
|
auto* room = &g_Level.Rooms[item.RoomNumber];
|
||||||
|
|
||||||
item.BoxNumber = GetSector(room, item.Pose.Position.x - room->Position.x, item.Pose.Position.z - room->Position.z)->PathfindingBoxID;
|
// NOTE: Avoid changing box ID of item or AI item so a local variable isn't required when searching for AI object near it.
|
||||||
|
int boxID = GetSector(room, item.Pose.Position.x - room->Position.x, item.Pose.Position.z - room->Position.z)->PathfindingBoxID;
|
||||||
room = &g_Level.Rooms[aiObject.roomNumber];
|
room = &g_Level.Rooms[aiObject.roomNumber];
|
||||||
aiObject.boxNumber = GetSector(room, aiObject.pos.Position.x - room->Position.x, aiObject.pos.Position.z - room->Position.z)->PathfindingBoxID;
|
int aiBoxID = GetSector(room, aiObject.pos.Position.x - room->Position.x, aiObject.pos.Position.z - room->Position.z)->PathfindingBoxID;
|
||||||
|
|
||||||
if (item.BoxNumber == NO_VALUE || aiObject.boxNumber == NO_VALUE)
|
// Box is invalid or zones don't match; continue.
|
||||||
return;
|
if (boxID == NO_VALUE || aiBoxID == NO_VALUE)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (checkSameZone && (zone[item.BoxNumber] != zone[aiObject.boxNumber]))
|
// Zone is invalid; continue.
|
||||||
return;
|
if (zone[boxID] != zone[aiBoxID])
|
||||||
|
continue;
|
||||||
// Don't check for same zone. Needed for Sophia Leigh.
|
|
||||||
foundObject = &aiObject;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HACK: Don't check for matching zone. Needed for Sophia Leigh.
|
||||||
|
foundAIObject = &aiObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (foundObject == nullptr)
|
if (foundAIObject == nullptr)
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
auto& aiItem = *creature->AITarget;
|
auto aiItem = ItemInfo{};
|
||||||
|
aiItem.ObjectNumber = foundAIObject->objectNumber;
|
||||||
|
aiItem.RoomNumber = foundAIObject->roomNumber;
|
||||||
|
aiItem.Pose.Position = foundAIObject->pos.Position;
|
||||||
|
aiItem.Pose.Orientation.y = foundAIObject->pos.Orientation.y;
|
||||||
|
aiItem.Flags = foundAIObject->flags;
|
||||||
|
aiItem.TriggerFlags = foundAIObject->triggerFlags;
|
||||||
|
aiItem.BoxNumber = foundAIObject->boxNumber;
|
||||||
|
|
||||||
creature->Enemy = &aiItem;
|
if (!(aiItem.Flags & IFLAG_TRIGGERED))
|
||||||
|
|
||||||
aiItem.ObjectNumber = foundObject->objectNumber;
|
|
||||||
aiItem.RoomNumber = foundObject->roomNumber;
|
|
||||||
aiItem.Pose.Position = foundObject->pos.Position;
|
|
||||||
aiItem.Pose.Orientation.y = foundObject->pos.Orientation.y;
|
|
||||||
aiItem.Flags = foundObject->flags;
|
|
||||||
aiItem.TriggerFlags = foundObject->triggerFlags;
|
|
||||||
aiItem.BoxNumber = foundObject->boxNumber;
|
|
||||||
|
|
||||||
if (!(creature->AITarget->Flags & ItemFlags::IFLAG_TRIGGERED))
|
|
||||||
{
|
{
|
||||||
float sinY = phd_sin(creature->AITarget->Pose.Orientation.y);
|
aiItem.Pose.Position.x += CLICK(1) * phd_sin(aiItem.Pose.Orientation.y);
|
||||||
float cosY = phd_cos(creature->AITarget->Pose.Orientation.y);
|
aiItem.Pose.Position.z += CLICK(1) * phd_cos(aiItem.Pose.Orientation.y);
|
||||||
|
|
||||||
creature->AITarget->Pose.Position.x += CLICK(1) * sinY;
|
|
||||||
creature->AITarget->Pose.Position.z += CLICK(1) * cosY;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data.FoundItem = aiItem;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TargetReachable(ItemInfo* item, ItemInfo* enemy)
|
int TargetReachable(ItemInfo* item, ItemInfo* enemy)
|
||||||
|
|
|
@ -11,8 +11,7 @@ struct LOTInfo;
|
||||||
enum class JumpDistance
|
enum class JumpDistance
|
||||||
{
|
{
|
||||||
Block1,
|
Block1,
|
||||||
Block2,
|
Block2
|
||||||
Block3
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TARGET_TYPE
|
enum TARGET_TYPE
|
||||||
|
@ -84,22 +83,23 @@ constexpr auto CLIP_ALL = (CLIP_LEFT | CLIP_RIGHT | CLIP_TOP | CLIP_BOTTOM);
|
||||||
|
|
||||||
constexpr auto CLIP_SECONDARY = 0x10;
|
constexpr auto CLIP_SECONDARY = 0x10;
|
||||||
|
|
||||||
struct AITargetFlags
|
struct AITargetData
|
||||||
{
|
{
|
||||||
bool checkDistance = false;
|
ItemInfo FoundItem = {};
|
||||||
bool checkSameZone = true;
|
GAME_OBJECT_ID ObjectID = GAME_OBJECT_ID::ID_NO_OBJECT;
|
||||||
bool checkOcb = false;
|
float DistanceMax = 0.0f;
|
||||||
float maxDistance = 0.0f;
|
int Ocb = NO_VALUE;
|
||||||
int ocb = NO_VALUE;
|
|
||||||
int objectNumber = ID_NO_OBJECT;
|
bool CheckDistance = false;
|
||||||
ItemInfo foundItem = {};
|
bool CheckSameZone = true;
|
||||||
|
bool CheckOcb = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
void GetCreatureMood(ItemInfo* item, AI_INFO* AI, bool isViolent);
|
void GetCreatureMood(ItemInfo* item, AI_INFO* AI, bool isViolent);
|
||||||
void CreatureMood(ItemInfo* item, AI_INFO* AI, bool isViolent);
|
void CreatureMood(ItemInfo* item, AI_INFO* AI, bool isViolent);
|
||||||
void FindAITargetObject(CreatureInfo* creature, int objectNumber);
|
void FindAITargetObject(ItemInfo& item, GAME_OBJECT_ID objectID, std::optional<int> ocb = std::nullopt, std::optional<bool> checkSameZone = std::nullopt);
|
||||||
void FindAITargetObject(CreatureInfo* creature, int objectNumber, int ocb, bool checkSameZone = true);
|
bool FindAITargetObject(ItemInfo& item, AITargetData& data);
|
||||||
bool FindAITargetObject(CreatureInfo* creature, AITargetFlags* data);
|
|
||||||
void GetAITarget(CreatureInfo* creature);
|
void GetAITarget(CreatureInfo* creature);
|
||||||
int CreatureVault(short itemNumber, short angle, int vault, int shift);
|
int CreatureVault(short itemNumber, short angle, int vault, int shift);
|
||||||
bool MoveCreature3DPos(Pose* fromPose, Pose* toPose, int velocity, short angleDif, int angleAdd);
|
bool MoveCreature3DPos(Pose* fromPose, Pose* toPose, int velocity, short angleDif, int angleAdd);
|
||||||
|
@ -135,7 +135,7 @@ void CreatureHealth(ItemInfo* item);
|
||||||
void AdjustStopperFlag(ItemInfo* item, int direction);
|
void AdjustStopperFlag(ItemInfo* item, int direction);
|
||||||
void InitializeItemBoxData();
|
void InitializeItemBoxData();
|
||||||
|
|
||||||
bool CanCreatureJump(ItemInfo& item, float stepDist, JumpDistance jumpDistType);
|
bool CanCreatureJump(ItemInfo& item, JumpDistance jumpDistType);
|
||||||
|
|
||||||
void DrawBox(int boxIndex, Vector3 color);
|
void DrawBox(int boxIndex, Vector3 color);
|
||||||
void DrawNearbyPathfinding(int boxIndex);
|
void DrawNearbyPathfinding(int boxIndex);
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#include "framework.h"
|
#include "framework.h"
|
||||||
#include "Game/control/control.h"
|
#include "Game/control/control.h"
|
||||||
|
|
||||||
#include <chrono>
|
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
|
|
||||||
#include "Game/camera.h"
|
#include "Game/camera.h"
|
||||||
|
@ -39,6 +38,7 @@
|
||||||
#include "Game/Setup.h"
|
#include "Game/Setup.h"
|
||||||
#include "Game/spotcam.h"
|
#include "Game/spotcam.h"
|
||||||
#include "Math/Math.h"
|
#include "Math/Math.h"
|
||||||
|
#include "Objects/Effects/LensFlare.h"
|
||||||
#include "Objects/Effects/tr4_locusts.h"
|
#include "Objects/Effects/tr4_locusts.h"
|
||||||
#include "Objects/Generic/Object/objects.h"
|
#include "Objects/Generic/Object/objects.h"
|
||||||
#include "Objects/Generic/Object/rope.h"
|
#include "Objects/Generic/Object/rope.h"
|
||||||
|
@ -59,7 +59,6 @@
|
||||||
#include "Specific/Input/Input.h"
|
#include "Specific/Input/Input.h"
|
||||||
#include "Specific/level.h"
|
#include "Specific/level.h"
|
||||||
#include "Specific/winmain.h"
|
#include "Specific/winmain.h"
|
||||||
#include "Game/Lara/lara_initialise.h"
|
|
||||||
|
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
using namespace TEN::Effects;
|
using namespace TEN::Effects;
|
||||||
|
@ -87,6 +86,8 @@ using namespace TEN::Hud;
|
||||||
using namespace TEN::Input;
|
using namespace TEN::Input;
|
||||||
using namespace TEN::Math;
|
using namespace TEN::Math;
|
||||||
using namespace TEN::Renderer;
|
using namespace TEN::Renderer;
|
||||||
|
using namespace TEN::Entities::Creatures::TR3;
|
||||||
|
using namespace TEN::Entities::Effects;
|
||||||
|
|
||||||
int GameTimer = 0;
|
int GameTimer = 0;
|
||||||
int GlobalCounter = 0;
|
int GlobalCounter = 0;
|
||||||
|
@ -112,177 +113,163 @@ short NextFxFree;
|
||||||
|
|
||||||
int ControlPhaseTime;
|
int ControlPhaseTime;
|
||||||
|
|
||||||
int DrawPhase(bool isTitle)
|
void DrawPhase(bool isTitle, float interpolationFactor)
|
||||||
{
|
{
|
||||||
if (isTitle)
|
if (isTitle)
|
||||||
{
|
{
|
||||||
g_Renderer.RenderTitle();
|
g_Renderer.RenderTitle(interpolationFactor);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_Renderer.Render();
|
g_Renderer.Render(interpolationFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear display sprites.
|
g_Renderer.Lock();
|
||||||
ClearDisplaySprites();
|
|
||||||
|
|
||||||
Camera.numberFrames = g_Renderer.Synchronize();
|
|
||||||
return Camera.numberFrames;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GameStatus ControlPhase(int numFrames)
|
GameStatus ControlPhase()
|
||||||
{
|
{
|
||||||
auto time1 = std::chrono::high_resolution_clock::now();
|
auto time1 = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
bool isTitle = (CurrentLevel == 0);
|
bool isTitle = (CurrentLevel == 0);
|
||||||
|
|
||||||
|
g_Renderer.PrepareScene();
|
||||||
|
g_Renderer.SaveOldState();
|
||||||
|
|
||||||
|
ClearFires();
|
||||||
|
ClearLensFlares();
|
||||||
|
ClearAllDisplaySprites();
|
||||||
|
|
||||||
|
SetupInterpolation();
|
||||||
|
PrepareCamera();
|
||||||
|
|
||||||
RegeneratePickups();
|
RegeneratePickups();
|
||||||
|
|
||||||
numFrames = std::clamp(numFrames, 0, 10);
|
|
||||||
|
|
||||||
if (TrackCameraInit)
|
|
||||||
{
|
|
||||||
UseSpotCam = false;
|
|
||||||
AlterFOV(LastFOV);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_GameStringsHandler->ProcessDisplayStrings(DELTA_TIME);
|
g_GameStringsHandler->ProcessDisplayStrings(DELTA_TIME);
|
||||||
|
|
||||||
bool isFirstTime = true;
|
|
||||||
static int framesCount = 0;
|
|
||||||
|
|
||||||
for (framesCount += numFrames; framesCount > 0; framesCount -= LOOP_FRAME_COUNT)
|
// Controls are polled before OnLoop to allow input data to be overwritten by script API methods.
|
||||||
{
|
HandleControls(isTitle);
|
||||||
// Controls are polled before OnLoop, so input data could be
|
|
||||||
// overwritten by script API methods.
|
|
||||||
HandleControls(isTitle);
|
|
||||||
|
|
||||||
// Pre-loop script and event handling.
|
// Pre-loop script and event handling.
|
||||||
g_GameScript->OnLoop(DELTA_TIME, false); // TODO: Don't use DELTA_TIME constant with variable framerate
|
g_GameScript->OnLoop(DELTA_TIME, false); // TODO: Don't use DELTA_TIME constant with high framerate.
|
||||||
HandleAllGlobalEvents(EventType::Loop, (Activator)LaraItem->Index);
|
HandleAllGlobalEvents(EventType::Loop, (Activator)LaraItem->Index);
|
||||||
|
|
||||||
// Clear last selected item in inventory (need to be after on loop event handling, so they can detect that).
|
// Control lock is processed after handling scripts because builder may want to process input externally while locking player from input.
|
||||||
g_Gui.CancelInventorySelection();
|
if (!isTitle && Lara.Control.IsLocked)
|
||||||
|
ClearAllActions();
|
||||||
|
|
||||||
// Control lock is processed after handling scripts, because builder may want to
|
// Item update should happen before camera update, so potential flyby/track camera triggers are processed correctly.
|
||||||
// process input externally, while still locking Lara from input.
|
UpdateAllItems();
|
||||||
if (!isTitle && Lara.Control.IsLocked)
|
UpdateAllEffects();
|
||||||
ClearAllActions();
|
UpdateLara(LaraItem, isTitle);
|
||||||
|
g_GameScriptEntities->TestCollidingObjects();
|
||||||
|
|
||||||
// Handle inventory / pause / load / save screens.
|
// Smash shatters and clear stopper flags under them.
|
||||||
auto result = HandleMenuCalls(isTitle);
|
UpdateShatters();
|
||||||
if (result != GameStatus::Normal)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
// Handle global input events.
|
// Clear last selected item in inventory (must be after on loop event handling, so they can detect that).
|
||||||
result = HandleGlobalInputEvents(isTitle);
|
g_Gui.CancelInventorySelection();
|
||||||
if (result != GameStatus::Normal)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
// Queued input actions are read again and cleared after UI
|
// Control lock is processed after handling scripts because builder may want to
|
||||||
// interrupts are processed, so first frame after exiting UI
|
// process input externally while locking player from input.
|
||||||
// will still register it.
|
if (!isTitle && Lara.Control.IsLocked)
|
||||||
ApplyActionQueue();
|
ClearAllActions();
|
||||||
ClearActionQueue();
|
|
||||||
|
|
||||||
UpdateCamera();
|
// Update weather.
|
||||||
UpdateAllItems();
|
Weather.Update();
|
||||||
UpdateAllEffects();
|
|
||||||
UpdateLara(LaraItem, isTitle);
|
|
||||||
|
|
||||||
g_GameScriptEntities->TestCollidingObjects();
|
// Update effects.
|
||||||
|
StreamerEffect.Update();
|
||||||
|
UpdateWibble();
|
||||||
|
UpdateSparks();
|
||||||
|
UpdateFireSparks();
|
||||||
|
UpdateSmoke();
|
||||||
|
UpdateBlood();
|
||||||
|
UpdateBubbles();
|
||||||
|
UpdateDebris();
|
||||||
|
UpdateGunShells();
|
||||||
|
UpdateFootprints();
|
||||||
|
UpdateSplashes();
|
||||||
|
UpdateElectricityArcs();
|
||||||
|
UpdateHelicalLasers();
|
||||||
|
UpdateDrips();
|
||||||
|
UpdateRats();
|
||||||
|
UpdateRipples();
|
||||||
|
UpdateBats();
|
||||||
|
UpdateSpiders();
|
||||||
|
UpdateSparkParticles();
|
||||||
|
UpdateSmokeParticles();
|
||||||
|
UpdateSimpleParticles();
|
||||||
|
UpdateExplosionParticles();
|
||||||
|
UpdateShockwaves();
|
||||||
|
UpdateBeetleSwarm();
|
||||||
|
UpdateLocusts();
|
||||||
|
UpdateUnderwaterBloodParticles();
|
||||||
|
UpdateFishSwarm();
|
||||||
|
UpdateGlobalLensFlare();
|
||||||
|
|
||||||
// Smash shatters and clear stopper flags under them.
|
// Update HUD.
|
||||||
UpdateShatters();
|
g_Hud.Update(*LaraItem);
|
||||||
|
UpdateFadeScreenAndCinematicBars();
|
||||||
|
|
||||||
// Update weather.
|
// Rumble screen (like in submarine level of TRC).
|
||||||
Weather.Update();
|
if (g_GameFlow->GetLevel(CurrentLevel)->Rumble)
|
||||||
|
RumbleScreen();
|
||||||
|
|
||||||
// Update effects.
|
DoFlipEffect(FlipEffect, LaraItem);
|
||||||
UpdateWibble();
|
|
||||||
StreamerEffect.Update();
|
|
||||||
UpdateSparks();
|
|
||||||
UpdateFireSparks();
|
|
||||||
UpdateSmoke();
|
|
||||||
UpdateBlood();
|
|
||||||
UpdateBubbles();
|
|
||||||
UpdateDebris();
|
|
||||||
UpdateGunShells();
|
|
||||||
UpdateFootprints();
|
|
||||||
UpdateSplashes();
|
|
||||||
UpdateElectricityArcs();
|
|
||||||
UpdateHelicalLasers();
|
|
||||||
UpdateDrips();
|
|
||||||
UpdateRats();
|
|
||||||
UpdateRipples();
|
|
||||||
UpdateBats();
|
|
||||||
UpdateSpiders();
|
|
||||||
UpdateSparkParticles();
|
|
||||||
UpdateSmokeParticles();
|
|
||||||
UpdateSimpleParticles();
|
|
||||||
UpdateExplosionParticles();
|
|
||||||
UpdateShockwaves();
|
|
||||||
UpdateBeetleSwarm();
|
|
||||||
UpdateFishSwarm();
|
|
||||||
UpdateLocusts();
|
|
||||||
UpdateUnderwaterBloodParticles();
|
|
||||||
|
|
||||||
// Update HUD.
|
UpdateCamera();
|
||||||
g_Hud.Update(*LaraItem);
|
|
||||||
UpdateFadeScreenAndCinematicBars();
|
|
||||||
|
|
||||||
// Rumble screen (like in submarine level of TRC).
|
PlaySoundSources();
|
||||||
if (g_GameFlow->GetLevel(CurrentLevel)->Rumble)
|
Sound_UpdateScene();
|
||||||
RumbleScreen();
|
|
||||||
|
|
||||||
PlaySoundSources();
|
// Post-loop script and event handling.
|
||||||
DoFlipEffect(FlipEffect, LaraItem);
|
g_GameScript->OnLoop(DELTA_TIME, true);
|
||||||
|
|
||||||
// Post-loop script and event handling.
|
// Clear savegame loaded flag.
|
||||||
g_GameScript->OnLoop(DELTA_TIME, true);
|
JustLoaded = false;
|
||||||
|
|
||||||
// Clear savegame loaded flag.
|
// Update timers.
|
||||||
JustLoaded = false;
|
GameTimer++;
|
||||||
|
GlobalCounter++;
|
||||||
|
|
||||||
// Update timers.
|
// Handle inventory, pause, load, save screens.
|
||||||
GameTimer++;
|
auto result = HandleMenuCalls(isTitle);
|
||||||
GlobalCounter++;
|
if (result != GameStatus::Normal)
|
||||||
|
return result;
|
||||||
|
|
||||||
// Add renderer objects on the first processed frame.
|
// Handle global input events.
|
||||||
if (isFirstTime)
|
result = HandleGlobalInputEvents(isTitle);
|
||||||
{
|
if (result != GameStatus::Normal)
|
||||||
g_Renderer.Lock();
|
return result;
|
||||||
isFirstTime = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
using ns = std::chrono::nanoseconds;
|
|
||||||
using get_time = std::chrono::steady_clock;
|
|
||||||
|
|
||||||
auto time2 = std::chrono::high_resolution_clock::now();
|
auto time2 = std::chrono::high_resolution_clock::now();
|
||||||
ControlPhaseTime = (std::chrono::duration_cast<ns>(time2 - time1)).count() / 1000000;
|
ControlPhaseTime = (std::chrono::duration_cast<std::chrono::nanoseconds>(time2 - time1)).count() / 1000000;
|
||||||
|
|
||||||
return GameStatus::Normal;
|
return GameStatus::Normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned CALLBACK GameMain(void *)
|
unsigned CALLBACK GameMain(void *)
|
||||||
{
|
{
|
||||||
TENLog("Starting GameMain...", LogLevel::Info);
|
TENLog("Starting GameMain()...", LogLevel::Info);
|
||||||
|
|
||||||
TimeInit();
|
TimeInit();
|
||||||
|
|
||||||
// Do a fixed time title image.
|
// Do fixed-time title image.
|
||||||
if (g_GameFlow->IntroImagePath.empty())
|
if (g_GameFlow->IntroImagePath.empty())
|
||||||
TENLog("Intro image path is not set.", LogLevel::Warning);
|
{
|
||||||
|
TENLog("Intro image path not set.", LogLevel::Warning);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
g_Renderer.RenderTitleImage();
|
g_Renderer.RenderTitleImage();
|
||||||
|
}
|
||||||
|
|
||||||
// Execute the Lua gameflow and play the game.
|
// Execute Lua gameflow and play game.
|
||||||
g_GameFlow->DoFlow();
|
g_GameFlow->DoFlow();
|
||||||
|
|
||||||
DoTheGame = false;
|
DoTheGame = false;
|
||||||
|
|
||||||
// Finish the thread.
|
// Finish thread.
|
||||||
PostMessage(WindowsHandle, WM_CLOSE, NULL, NULL);
|
PostMessage(WindowsHandle, WM_CLOSE, NULL, NULL);
|
||||||
EndThread();
|
EndThread();
|
||||||
|
|
||||||
|
@ -298,7 +285,7 @@ GameStatus DoLevel(int levelIndex, bool loadGame)
|
||||||
|
|
||||||
// Load level. Fall back to title if unsuccessful.
|
// Load level. Fall back to title if unsuccessful.
|
||||||
if (!LoadLevelFile(levelIndex))
|
if (!LoadLevelFile(levelIndex))
|
||||||
return isTitle ? GameStatus::ExitGame : GameStatus::ExitToTitle;
|
return (isTitle ? GameStatus::ExitGame : GameStatus::ExitToTitle);
|
||||||
|
|
||||||
// Initialize items, effects, lots, and cameras.
|
// Initialize items, effects, lots, and cameras.
|
||||||
HairEffect.Initialize();
|
HairEffect.Initialize();
|
||||||
|
@ -355,11 +342,15 @@ void KillMoveItems()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < ItemNewRoomNo; i++)
|
for (int i = 0; i < ItemNewRoomNo; i++)
|
||||||
{
|
{
|
||||||
short itemNumber = ItemNewRooms[2 * i];
|
int itemNumber = ItemNewRooms[i * 2];
|
||||||
if (itemNumber >= 0)
|
if (itemNumber >= 0)
|
||||||
ItemNewRoom(itemNumber, ItemNewRooms[2 * i + 1]);
|
{
|
||||||
|
ItemNewRoom(itemNumber, ItemNewRooms[(i * 2) + 1]);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
KillItem(itemNumber & 0x7FFF);
|
KillItem(itemNumber & 0x7FFF);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -372,11 +363,15 @@ void KillMoveEffects()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < ItemNewRoomNo; i++)
|
for (int i = 0; i < ItemNewRoomNo; i++)
|
||||||
{
|
{
|
||||||
short itemNumber = ItemNewRooms[2 * i];
|
int itemNumber = ItemNewRooms[i * 2];
|
||||||
if (itemNumber >= 0)
|
if (itemNumber >= 0)
|
||||||
EffectNewRoom(itemNumber, ItemNewRooms[2 * i + 1]);
|
{
|
||||||
|
EffectNewRoom(itemNumber, ItemNewRooms[(i * 2) + 1]);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
KillEffect(itemNumber & 0x7FFF);
|
KillEffect(itemNumber & 0x7FFF);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,13 +394,13 @@ void CleanUp()
|
||||||
// Reset oscillator seed.
|
// Reset oscillator seed.
|
||||||
Wibble = 0;
|
Wibble = 0;
|
||||||
|
|
||||||
// Needs to be cleared, otherwise controls will lock if user exits to title while playing flyby with locked controls.
|
// Clear player lock, otherwise controls will lock if user exits to title while playing flyby with locked controls.
|
||||||
Lara.Control.IsLocked = false;
|
Lara.Control.IsLocked = false;
|
||||||
|
|
||||||
// Resets lightning and wind parameters to avoid holding over previous weather to new level.
|
// Resets lightning and wind parameters to avoid holding over previous weather to new level.
|
||||||
Weather.Clear();
|
Weather.Clear();
|
||||||
|
|
||||||
// Needs to be cleared, otherwise a list of active creatures from previous level will spill into new level.
|
// Clear creatures, otherwise list of active creatures from previous level will spill into new level.
|
||||||
ActiveCreatures.clear();
|
ActiveCreatures.clear();
|
||||||
|
|
||||||
// Clear ropes.
|
// Clear ropes.
|
||||||
|
@ -419,7 +414,7 @@ void CleanUp()
|
||||||
StreamerEffect.Clear();
|
StreamerEffect.Clear();
|
||||||
ClearUnderwaterBloodParticles();
|
ClearUnderwaterBloodParticles();
|
||||||
ClearBubbles();
|
ClearBubbles();
|
||||||
ClearDisplaySprites();
|
ClearAllDisplaySprites();
|
||||||
ClearFootprints();
|
ClearFootprints();
|
||||||
ClearDrips();
|
ClearDrips();
|
||||||
ClearRipples();
|
ClearRipples();
|
||||||
|
@ -455,26 +450,27 @@ void InitializeScripting(int levelIndex, LevelLoadType type)
|
||||||
g_GameStringsHandler->ClearDisplayStrings();
|
g_GameStringsHandler->ClearDisplayStrings();
|
||||||
g_GameScript->ResetScripts(!levelIndex || type != LevelLoadType::New);
|
g_GameScript->ResetScripts(!levelIndex || type != LevelLoadType::New);
|
||||||
|
|
||||||
auto* level = g_GameFlow->GetLevel(levelIndex);
|
const auto& level = *g_GameFlow->GetLevel(levelIndex);
|
||||||
|
|
||||||
// Run level script if it exists.
|
// Run level script if it exists.
|
||||||
if (!level->ScriptFileName.empty())
|
if (!level.ScriptFileName.empty())
|
||||||
{
|
{
|
||||||
g_GameScript->ExecuteScriptFile(g_GameFlow->GetGameDir() + level->ScriptFileName);
|
g_GameScript->ExecuteScriptFile(g_GameFlow->GetGameDir() + level.ScriptFileName);
|
||||||
g_GameScript->InitCallbacks();
|
g_GameScript->InitCallbacks();
|
||||||
g_GameStringsHandler->SetCallbackDrawString([](const std::string& key, D3DCOLOR color, const Vec2& pos, float scale, int flags)
|
g_GameStringsHandler->SetCallbackDrawString([](const std::string& key, D3DCOLOR color, const Vec2& pos, float scale, int flags)
|
||||||
{
|
{
|
||||||
g_Renderer.AddString(
|
g_Renderer.AddString(
|
||||||
key,
|
key,
|
||||||
Vector2(((float)pos.x / (float)g_Configuration.ScreenWidth * DISPLAY_SPACE_RES.x),
|
Vector2(
|
||||||
((float)pos.y / (float)g_Configuration.ScreenHeight * DISPLAY_SPACE_RES.y)),
|
(pos.x / g_Configuration.ScreenWidth) * DISPLAY_SPACE_RES.x,
|
||||||
|
(pos.y / g_Configuration.ScreenHeight) * DISPLAY_SPACE_RES.y),
|
||||||
Color(color), scale, flags);
|
Color(color), scale, flags);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Play default background music.
|
// Play default background music.
|
||||||
if (type != LevelLoadType::Load)
|
if (type != LevelLoadType::Load)
|
||||||
PlaySoundTrack(level->GetAmbientTrack(), SoundTrackType::BGM);
|
PlaySoundTrack(level.GetAmbientTrack(), SoundTrackType::BGM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeInitializeScripting(int levelIndex, GameStatus reason)
|
void DeInitializeScripting(int levelIndex, GameStatus reason)
|
||||||
|
@ -485,7 +481,7 @@ void DeInitializeScripting(int levelIndex, GameStatus reason)
|
||||||
g_GameScript->FreeLevelScripts();
|
g_GameScript->FreeLevelScripts();
|
||||||
g_GameScriptEntities->FreeEntities();
|
g_GameScriptEntities->FreeEntities();
|
||||||
|
|
||||||
if (!levelIndex)
|
if (levelIndex == 0)
|
||||||
g_GameScript->ResetScripts(true);
|
g_GameScript->ResetScripts(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -494,7 +490,7 @@ void InitializeOrLoadGame(bool loadGame)
|
||||||
g_Gui.SetInventoryItemChosen(NO_VALUE);
|
g_Gui.SetInventoryItemChosen(NO_VALUE);
|
||||||
g_Gui.SetEnterInventory(NO_VALUE);
|
g_Gui.SetEnterInventory(NO_VALUE);
|
||||||
|
|
||||||
// Restore the game?
|
// Restore game?
|
||||||
if (loadGame)
|
if (loadGame)
|
||||||
{
|
{
|
||||||
SaveGame::Load(g_GameFlow->SelectedSaveGame);
|
SaveGame::Load(g_GameFlow->SelectedSaveGame);
|
||||||
|
@ -515,7 +511,7 @@ void InitializeOrLoadGame(bool loadGame)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If not loading a savegame, clear all info.
|
// If not loading savegame, clear all info.
|
||||||
SaveGame::Statistics.Level = {};
|
SaveGame::Statistics.Level = {};
|
||||||
|
|
||||||
if (InitializeGame)
|
if (InitializeGame)
|
||||||
|
@ -532,10 +528,6 @@ void InitializeOrLoadGame(bool loadGame)
|
||||||
{
|
{
|
||||||
SaveGame::LoadHub(CurrentLevel);
|
SaveGame::LoadHub(CurrentLevel);
|
||||||
TENLog("Starting new level.", LogLevel::Info);
|
TENLog("Starting new level.", LogLevel::Info);
|
||||||
|
|
||||||
// Restore vehicle.
|
|
||||||
auto* item = FindItem(ID_LARA);
|
|
||||||
InitializePlayerVehicle(*item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_GameScript->OnStart();
|
g_GameScript->OnStart();
|
||||||
|
@ -545,62 +537,47 @@ void InitializeOrLoadGame(bool loadGame)
|
||||||
|
|
||||||
GameStatus DoGameLoop(int levelIndex)
|
GameStatus DoGameLoop(int levelIndex)
|
||||||
{
|
{
|
||||||
int numFrames = LOOP_FRAME_COUNT;
|
int frameCount = LOOP_FRAME_COUNT;
|
||||||
auto& status = g_GameFlow->LastGameStatus;
|
auto& status = g_GameFlow->LastGameStatus;
|
||||||
|
|
||||||
// Before entering actual game loop, ControlPhase must be
|
// Before entering actual game loop, ControlPhase() must be
|
||||||
// called once to sort out various runtime shenanigangs (e.g. hair).
|
// called once to sort out various runtime shenanigangs (e.g. hair).
|
||||||
status = ControlPhase(numFrames);
|
status = ControlPhase();
|
||||||
|
|
||||||
|
g_Synchronizer.Init();
|
||||||
|
bool legacy30FpsDoneDraw = false;
|
||||||
|
|
||||||
while (DoTheGame)
|
while (DoTheGame)
|
||||||
{
|
{
|
||||||
status = ControlPhase(numFrames);
|
g_Synchronizer.Sync();
|
||||||
|
|
||||||
if (!levelIndex)
|
while (g_Synchronizer.Synced())
|
||||||
{
|
{
|
||||||
UpdateInputActions(LaraItem);
|
status = ControlPhase();
|
||||||
|
g_Synchronizer.Step();
|
||||||
|
|
||||||
auto invStatus = g_Gui.TitleOptions(LaraItem);
|
legacy30FpsDoneDraw = false;
|
||||||
|
}
|
||||||
|
|
||||||
switch (invStatus)
|
if (status != GameStatus::Normal)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (!g_Configuration.EnableHighFramerate)
|
||||||
|
{
|
||||||
|
if (!legacy30FpsDoneDraw)
|
||||||
{
|
{
|
||||||
case InventoryResult::NewGame:
|
DrawPhase(!levelIndex, 0.0f);
|
||||||
case InventoryResult::NewGameSelectedLevel:
|
legacy30FpsDoneDraw = true;
|
||||||
status = GameStatus::NewGame;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case InventoryResult::HomeLevel:
|
|
||||||
status = GameStatus::HomeLevel;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case InventoryResult::LoadGame:
|
|
||||||
status = GameStatus::LoadGame;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case InventoryResult::ExitGame:
|
|
||||||
status = GameStatus::ExitGame;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (invStatus != InventoryResult::None)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (status == GameStatus::ExitToTitle ||
|
DrawPhase(!levelIndex, g_Synchronizer.GetInterpolationFactor());
|
||||||
status == GameStatus::LaraDead ||
|
|
||||||
status == GameStatus::LoadGame ||
|
|
||||||
status == GameStatus::LevelComplete)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
numFrames = DrawPhase(!levelIndex);
|
|
||||||
Sound_UpdateScene();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EndGameLoop(levelIndex, status);
|
EndGameLoop(levelIndex, status);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -614,28 +591,50 @@ void EndGameLoop(int levelIndex, GameStatus reason)
|
||||||
StopRumble();
|
StopRumble();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetupInterpolation()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < g_Level.Items.size(); i++)
|
||||||
|
g_Level.Items[i].DisableInterpolation = false;
|
||||||
|
}
|
||||||
|
|
||||||
void HandleControls(bool isTitle)
|
void HandleControls(bool isTitle)
|
||||||
{
|
{
|
||||||
// Poll input devices and update input variables.
|
// Poll input devices and update input variables.
|
||||||
if (!isTitle)
|
// TODO: To allow cutscene skipping later, don't clear Deselect action.
|
||||||
{
|
UpdateInputActions(LaraItem, true);
|
||||||
// TODO: To allow cutscene skipping later, don't clear Deselect action.
|
|
||||||
UpdateInputActions(LaraItem, true);
|
if (isTitle)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ClearAction(In::Look);
|
ClearAction(In::Look);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GameStatus HandleMenuCalls(bool isTitle)
|
GameStatus HandleMenuCalls(bool isTitle)
|
||||||
{
|
{
|
||||||
auto result = GameStatus::Normal;
|
auto gameStatus = GameStatus::Normal;
|
||||||
|
|
||||||
if (isTitle || ScreenFading)
|
if (ScreenFading)
|
||||||
return result;
|
return gameStatus;
|
||||||
|
|
||||||
// Does the player want to enter inventory?
|
if (isTitle)
|
||||||
|
{
|
||||||
|
auto invStatus = g_Gui.TitleOptions(LaraItem);
|
||||||
|
|
||||||
|
switch (invStatus)
|
||||||
|
{
|
||||||
|
case InventoryResult::NewGame:
|
||||||
|
case InventoryResult::NewGameSelectedLevel:
|
||||||
|
return GameStatus::NewGame;
|
||||||
|
|
||||||
|
case InventoryResult::LoadGame:
|
||||||
|
return GameStatus::LoadGame;
|
||||||
|
|
||||||
|
case InventoryResult::ExitGame:
|
||||||
|
return GameStatus::ExitGame;
|
||||||
|
}
|
||||||
|
|
||||||
|
return gameStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle inventory.
|
||||||
if (IsClicked(In::Save) && LaraItem->HitPoints > 0 &&
|
if (IsClicked(In::Save) && LaraItem->HitPoints > 0 &&
|
||||||
g_Gui.GetInventoryMode() != InventoryMode::Save &&
|
g_Gui.GetInventoryMode() != InventoryMode::Save &&
|
||||||
g_GameFlow->IsLoadSaveEnabled())
|
g_GameFlow->IsLoadSaveEnabled())
|
||||||
|
@ -652,28 +651,28 @@ GameStatus HandleMenuCalls(bool isTitle)
|
||||||
g_Gui.SetInventoryMode(InventoryMode::Load);
|
g_Gui.SetInventoryMode(InventoryMode::Load);
|
||||||
|
|
||||||
if (g_Gui.CallInventory(LaraItem, false))
|
if (g_Gui.CallInventory(LaraItem, false))
|
||||||
result = GameStatus::LoadGame;
|
gameStatus = GameStatus::LoadGame;
|
||||||
}
|
}
|
||||||
else if (IsClicked(In::Pause) && LaraItem->HitPoints > 0 &&
|
else if (IsClicked(In::Pause) && LaraItem->HitPoints > 0 &&
|
||||||
g_Gui.GetInventoryMode() != InventoryMode::Pause)
|
g_Gui.GetInventoryMode() != InventoryMode::Pause)
|
||||||
{
|
{
|
||||||
if (g_Gui.CallPause())
|
if (g_Gui.CallPause())
|
||||||
result = GameStatus::ExitToTitle;
|
gameStatus = GameStatus::ExitToTitle;
|
||||||
}
|
}
|
||||||
else if ((IsClicked(In::Inventory) || g_Gui.GetEnterInventory() != NO_VALUE) &&
|
else if ((IsClicked(In::Inventory) || g_Gui.GetEnterInventory() != NO_VALUE) &&
|
||||||
LaraItem->HitPoints > 0 && !Lara.Control.Look.IsUsingBinoculars)
|
LaraItem->HitPoints > 0 && !Lara.Control.Look.IsUsingBinoculars)
|
||||||
{
|
{
|
||||||
if (g_Gui.CallInventory(LaraItem, true))
|
if (g_Gui.CallInventory(LaraItem, true))
|
||||||
result = GameStatus::LoadGame;
|
gameStatus = GameStatus::LoadGame;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result != GameStatus::Normal)
|
if (gameStatus != GameStatus::Normal)
|
||||||
{
|
{
|
||||||
StopAllSounds();
|
StopAllSounds();
|
||||||
StopRumble();
|
StopRumble();
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return gameStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameStatus HandleGlobalInputEvents(bool isTitle)
|
GameStatus HandleGlobalInputEvents(bool isTitle)
|
||||||
|
|
|
@ -50,7 +50,7 @@ enum FadeStatus
|
||||||
|
|
||||||
constexpr int MAX_ROOMS = 1024;
|
constexpr int MAX_ROOMS = 1024;
|
||||||
|
|
||||||
constexpr int LOOP_FRAME_COUNT = 2;
|
constexpr auto LOOP_FRAME_COUNT = 2;
|
||||||
|
|
||||||
extern int GameTimer;
|
extern int GameTimer;
|
||||||
extern int RumbleTimer;
|
extern int RumbleTimer;
|
||||||
|
@ -78,9 +78,9 @@ extern int ControlPhaseTime;
|
||||||
|
|
||||||
extern std::vector<short> OutsideRoomTable[OUTSIDE_SIZE][OUTSIDE_SIZE];
|
extern std::vector<short> OutsideRoomTable[OUTSIDE_SIZE][OUTSIDE_SIZE];
|
||||||
|
|
||||||
int DrawPhase(bool isTitle);
|
void DrawPhase(bool isTitle, float interpolationFactor);
|
||||||
|
|
||||||
GameStatus ControlPhase(int numFrames);
|
GameStatus ControlPhase();
|
||||||
GameStatus DoLevel(int levelIndex, bool loadGame = false);
|
GameStatus DoLevel(int levelIndex, bool loadGame = false);
|
||||||
GameStatus DoGameLoop(int levelIndex);
|
GameStatus DoGameLoop(int levelIndex);
|
||||||
void EndGameLoop(int levelIndex, GameStatus reason);
|
void EndGameLoop(int levelIndex, GameStatus reason);
|
||||||
|
@ -102,4 +102,6 @@ void InitializeOrLoadGame(bool loadGame);
|
||||||
void InitializeScripting(int levelIndex, LevelLoadType type);
|
void InitializeScripting(int levelIndex, LevelLoadType type);
|
||||||
void DeInitializeScripting(int levelIndex);
|
void DeInitializeScripting(int levelIndex);
|
||||||
|
|
||||||
|
void SetupInterpolation();
|
||||||
|
|
||||||
unsigned CALLBACK GameMain(void*);
|
unsigned CALLBACK GameMain(void*);
|
||||||
|
|
|
@ -329,6 +329,8 @@ void Turn180(ItemInfo* item)
|
||||||
item->Pose.Orientation.x = -item->Pose.Orientation.x;
|
item->Pose.Orientation.x = -item->Pose.Orientation.x;
|
||||||
item->Pose.Orientation.y += ANGLE(180.0f);
|
item->Pose.Orientation.y += ANGLE(180.0f);
|
||||||
item->Pose.Orientation.z = -item->Pose.Orientation.z;
|
item->Pose.Orientation.z = -item->Pose.Orientation.z;
|
||||||
|
|
||||||
|
item->DisableInterpolation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FinishLevel(ItemInfo* item)
|
void FinishLevel(ItemInfo* item)
|
||||||
|
|
|
@ -197,6 +197,13 @@ void InitializeSlot(short itemNumber, bool makeTarget)
|
||||||
creature->LOT.Drop = -BLOCK(1);
|
creature->LOT.Drop = -BLOCK(1);
|
||||||
creature->LOT.Zone = ZoneType::Human;
|
creature->LOT.Zone = ZoneType::Human;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LotType::EnemyJeep:
|
||||||
|
creature->LOT.Step = BLOCK(4);
|
||||||
|
creature->LOT.Drop = -BLOCK(4);
|
||||||
|
creature->LOT.CanJump = true;
|
||||||
|
creature->LOT.Zone = ZoneType::Human;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearLOT(&creature->LOT);
|
ClearLOT(&creature->LOT);
|
||||||
|
|
|
@ -344,18 +344,13 @@ void Antitrigger(short const value, short const flags)
|
||||||
if (flags & ONESHOT)
|
if (flags & ONESHOT)
|
||||||
item->Flags |= ATONESHOT;
|
item->Flags |= ATONESHOT;
|
||||||
|
|
||||||
if (item->Active)
|
item->Status = ITEM_DEACTIVATED;
|
||||||
|
|
||||||
|
if (item->Active && Objects[item->ObjectNumber].intelligent)
|
||||||
{
|
{
|
||||||
item->Active = false;
|
DisableEntityAI(value);
|
||||||
item->Status = ITEM_DEACTIVATED;
|
RemoveActiveItem(value, false);
|
||||||
|
item->Status = ITEM_INVISIBLE;
|
||||||
if (Objects[item->ObjectNumber].intelligent)
|
|
||||||
{
|
|
||||||
DisableEntityAI(value);
|
|
||||||
RemoveActiveItem(value, false);
|
|
||||||
|
|
||||||
item->Status = ITEM_INVISIBLE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,8 @@ namespace TEN::Effects::Blood
|
||||||
if (uwBlood.Life <= 0.0f)
|
if (uwBlood.Life <= 0.0f)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
uwBlood.StoreInterpolationData();
|
||||||
|
|
||||||
// Update size.
|
// Update size.
|
||||||
if (uwBlood.Size < UW_BLOOD_SIZE_MAX)
|
if (uwBlood.Size < UW_BLOOD_SIZE_MAX)
|
||||||
uwBlood.Size += 4.0f;
|
uwBlood.Size += 4.0f;
|
||||||
|
|
|
@ -14,6 +14,21 @@ namespace TEN::Effects::Blood
|
||||||
float Init = 0.0f;
|
float Init = 0.0f;
|
||||||
float Size = 0.0f;
|
float Size = 0.0f;
|
||||||
float Opacity = 0.0f;
|
float Opacity = 0.0f;
|
||||||
|
|
||||||
|
Vector3 PrevPosition = Vector3::Zero;
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
float PrevLife = 0.0f;
|
||||||
|
float PrevSize = 0.0f;
|
||||||
|
float PrevOpacity = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = Position;
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevLife = Life;
|
||||||
|
PrevSize = Size;
|
||||||
|
PrevOpacity = Opacity;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<UnderwaterBlood> UnderwaterBloodParticles;
|
extern std::vector<UnderwaterBlood> UnderwaterBloodParticles;
|
||||||
|
|
|
@ -14,7 +14,8 @@ namespace TEN::Effects::DisplaySprite
|
||||||
std::vector<DisplaySprite> DisplaySprites = {};
|
std::vector<DisplaySprite> DisplaySprites = {};
|
||||||
|
|
||||||
void AddDisplaySprite(GAME_OBJECT_ID objectID, int spriteID, const Vector2& pos, short orient, const Vector2& scale, const Vector4& color,
|
void AddDisplaySprite(GAME_OBJECT_ID objectID, int spriteID, const Vector2& pos, short orient, const Vector2& scale, const Vector4& color,
|
||||||
int priority, DisplaySpriteAlignMode alignMode, DisplaySpriteScaleMode scaleMode, BlendMode blendMode)
|
int priority, DisplaySpriteAlignMode alignMode, DisplaySpriteScaleMode scaleMode,
|
||||||
|
BlendMode blendMode, DisplaySpritePhase source)
|
||||||
{
|
{
|
||||||
auto displaySprite = DisplaySprite{};
|
auto displaySprite = DisplaySprite{};
|
||||||
displaySprite.ObjectID = objectID;
|
displaySprite.ObjectID = objectID;
|
||||||
|
@ -27,12 +28,25 @@ namespace TEN::Effects::DisplaySprite
|
||||||
displaySprite.AlignMode = alignMode;
|
displaySprite.AlignMode = alignMode;
|
||||||
displaySprite.ScaleMode = scaleMode;
|
displaySprite.ScaleMode = scaleMode;
|
||||||
displaySprite.BlendMode = blendMode;
|
displaySprite.BlendMode = blendMode;
|
||||||
|
displaySprite.Source = source;
|
||||||
|
|
||||||
DisplaySprites.push_back(displaySprite);
|
DisplaySprites.push_back(displaySprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearDisplaySprites()
|
void ClearAllDisplaySprites()
|
||||||
{
|
{
|
||||||
DisplaySprites.clear();
|
DisplaySprites.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClearDrawPhaseDisplaySprites()
|
||||||
|
{
|
||||||
|
DisplaySprites.erase(
|
||||||
|
std::remove_if(
|
||||||
|
DisplaySprites.begin(), DisplaySprites.end(),
|
||||||
|
[](const DisplaySprite& displaySprite)
|
||||||
|
{
|
||||||
|
return (displaySprite.Source == DisplaySpritePhase::Draw);
|
||||||
|
}),
|
||||||
|
DisplaySprites.end());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,12 @@ namespace TEN::Effects::DisplaySprite
|
||||||
Fill,
|
Fill,
|
||||||
Stretch
|
Stretch
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class DisplaySpritePhase
|
||||||
|
{
|
||||||
|
Control,
|
||||||
|
Draw
|
||||||
|
};
|
||||||
|
|
||||||
struct DisplaySprite
|
struct DisplaySprite
|
||||||
{
|
{
|
||||||
|
@ -38,11 +44,15 @@ namespace TEN::Effects::DisplaySprite
|
||||||
DisplaySpriteAlignMode AlignMode = DisplaySpriteAlignMode::Center;
|
DisplaySpriteAlignMode AlignMode = DisplaySpriteAlignMode::Center;
|
||||||
DisplaySpriteScaleMode ScaleMode = DisplaySpriteScaleMode::Fit;
|
DisplaySpriteScaleMode ScaleMode = DisplaySpriteScaleMode::Fit;
|
||||||
BlendMode BlendMode = BlendMode::AlphaBlend;
|
BlendMode BlendMode = BlendMode::AlphaBlend;
|
||||||
|
|
||||||
|
DisplaySpritePhase Source = DisplaySpritePhase::Control;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<DisplaySprite> DisplaySprites;
|
extern std::vector<DisplaySprite> DisplaySprites;
|
||||||
|
|
||||||
void AddDisplaySprite(GAME_OBJECT_ID objectID, int spriteID, const Vector2& pos, short orient, const Vector2& scale, const Vector4& color,
|
void AddDisplaySprite(GAME_OBJECT_ID objectID, int spriteID, const Vector2& pos, short orient, const Vector2& scale, const Vector4& color,
|
||||||
int priority, DisplaySpriteAlignMode alignMode, DisplaySpriteScaleMode scaleMode, BlendMode blendMode);
|
int priority, DisplaySpriteAlignMode alignMode, DisplaySpriteScaleMode scaleMode,
|
||||||
void ClearDisplaySprites();
|
BlendMode blendMode, DisplaySpritePhase source);
|
||||||
|
void ClearAllDisplaySprites();
|
||||||
|
void ClearDrawPhaseDisplaySprites();
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,6 +175,8 @@ namespace TEN::Effects::Electricity
|
||||||
|
|
||||||
for (auto& laser : HelicalLasers)
|
for (auto& laser : HelicalLasers)
|
||||||
{
|
{
|
||||||
|
laser.StoreInterpolationData();
|
||||||
|
|
||||||
// Set to despawn.
|
// Set to despawn.
|
||||||
laser.Life -= 1.0f;
|
laser.Life -= 1.0f;
|
||||||
if (laser.Life <= 0.0f)
|
if (laser.Life <= 0.0f)
|
||||||
|
@ -213,6 +215,8 @@ namespace TEN::Effects::Electricity
|
||||||
if (arc.life <= 0.0f)
|
if (arc.life <= 0.0f)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
arc.StoreInterpolationData();
|
||||||
|
|
||||||
// If/when this behaviour is changed, modify AddLightningArc accordingly.
|
// If/when this behaviour is changed, modify AddLightningArc accordingly.
|
||||||
arc.life -= 2.0f;
|
arc.life -= 2.0f;
|
||||||
if (arc.life > 0.0f)
|
if (arc.life > 0.0f)
|
||||||
|
|
|
@ -39,6 +39,27 @@ namespace TEN::Effects::Electricity
|
||||||
int rotation;
|
int rotation;
|
||||||
int type;
|
int type;
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
|
Vector3 PrevPos1 = Vector3::Zero;
|
||||||
|
Vector3 PrevPos2 = Vector3::Zero;
|
||||||
|
Vector3 PrevPos3 = Vector3::Zero;
|
||||||
|
Vector3 PrevPos4 = Vector3::Zero;
|
||||||
|
byte PrevR = 0;
|
||||||
|
byte PrevG = 0;
|
||||||
|
byte PrevB = 0;
|
||||||
|
float PrevLife = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPos1 = pos1;
|
||||||
|
PrevPos2 = pos2;
|
||||||
|
PrevPos3 = pos3;
|
||||||
|
PrevPos4 = pos4;
|
||||||
|
PrevR = r;
|
||||||
|
PrevG = g;
|
||||||
|
PrevB = b;
|
||||||
|
PrevLife = life;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct HelicalLaser
|
struct HelicalLaser
|
||||||
|
@ -57,6 +78,27 @@ namespace TEN::Effects::Electricity
|
||||||
float LengthEnd = 0.0f;
|
float LengthEnd = 0.0f;
|
||||||
float Opacity = 0.0f;
|
float Opacity = 0.0f;
|
||||||
short Rotation = 0;
|
short Rotation = 0;
|
||||||
|
|
||||||
|
Vector3 PrevOrigin = Vector3::Zero;
|
||||||
|
Vector3 PrevTarget = Vector3::Zero;
|
||||||
|
short PrevOrientation2D = 0;
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
float PrevLife = 0.0f;
|
||||||
|
float PrevRadius = 0.0f;
|
||||||
|
float PrevLength = 0.0f;
|
||||||
|
float PrevOpacity = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevOrigin = Origin;
|
||||||
|
PrevTarget = Target;
|
||||||
|
PrevOrientation2D = Orientation2D;
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevLife = Life;
|
||||||
|
PrevRadius = Radius;
|
||||||
|
PrevLength = Length;
|
||||||
|
PrevOpacity = Opacity;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<Electricity> ElectricityArcs;
|
extern std::vector<Electricity> ElectricityArcs;
|
||||||
|
|
|
@ -59,6 +59,8 @@ namespace TEN::Effects::Ripple
|
||||||
if (ripple.Life <= 0.0f)
|
if (ripple.Life <= 0.0f)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
ripple.StoreInterpolationData();
|
||||||
|
|
||||||
// Update size.
|
// Update size.
|
||||||
if (ripple.Size < RIPPLE_SIZE_MAX)
|
if (ripple.Size < RIPPLE_SIZE_MAX)
|
||||||
ripple.Size += (ripple.Flags & ((int)RippleFlags::SlowFade | (int)RippleFlags::OnGround)) ? SIZE_STEP_SMALL : SIZE_STEP_LARGE;
|
ripple.Size += (ripple.Flags & ((int)RippleFlags::SlowFade | (int)RippleFlags::OnGround)) ? SIZE_STEP_SMALL : SIZE_STEP_LARGE;
|
||||||
|
|
|
@ -23,6 +23,17 @@ namespace TEN::Effects::Ripple
|
||||||
float Size = 0.0f;
|
float Size = 0.0f;
|
||||||
float FadeDuration = 0.0f;
|
float FadeDuration = 0.0f;
|
||||||
int Flags = 0;
|
int Flags = 0;
|
||||||
|
|
||||||
|
Vector3 PrevPosition = Vector3::Zero;
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
float PrevSize = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = Position;
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevSize = Size;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<Ripple> Ripples;
|
extern std::vector<Ripple> Ripples;
|
||||||
|
|
|
@ -21,6 +21,8 @@ namespace TEN::Effects::Streamer
|
||||||
|
|
||||||
void Streamer::StreamerSegment::Update()
|
void Streamer::StreamerSegment::Update()
|
||||||
{
|
{
|
||||||
|
StoreInterpolationData();
|
||||||
|
|
||||||
// Update opacity.
|
// Update opacity.
|
||||||
if (Color.w > 0.0f)
|
if (Color.w > 0.0f)
|
||||||
Color.w = EaseInOutSine(0.0f, OpacityMax, Life / LifeMax);
|
Color.w = EaseInOutSine(0.0f, OpacityMax, Life / LifeMax);
|
||||||
|
@ -190,7 +192,10 @@ namespace TEN::Effects::Streamer
|
||||||
pool.erase(
|
pool.erase(
|
||||||
std::remove_if(
|
std::remove_if(
|
||||||
pool.begin(), pool.end(),
|
pool.begin(), pool.end(),
|
||||||
[](const auto& streamer) { return streamer.Segments.empty(); }),
|
[](const auto& streamer)
|
||||||
|
{
|
||||||
|
return streamer.Segments.empty();
|
||||||
|
}),
|
||||||
pool.end());
|
pool.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,9 @@ namespace TEN::Effects::Streamer
|
||||||
{
|
{
|
||||||
enum class StreamerFlags
|
enum class StreamerFlags
|
||||||
{
|
{
|
||||||
FadeLeft = (1 << 0),
|
FadeLeft = 1 << 0,
|
||||||
FadeRight = (1 << 1),
|
FadeRight = 1 << 1,
|
||||||
|
BlendModeAdditive = 1 << 2
|
||||||
BlendModeAdditive = (1 << 2)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Streamer
|
class Streamer
|
||||||
|
@ -39,11 +38,21 @@ namespace TEN::Effects::Streamer
|
||||||
|
|
||||||
std::array<Vector3, VERTEX_COUNT> Vertices = {};
|
std::array<Vector3, VERTEX_COUNT> Vertices = {};
|
||||||
|
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
std::array<Vector3, VERTEX_COUNT> PrevVertices = {};
|
||||||
|
|
||||||
void InitializeVertices(const Vector3& pos, float width);
|
void InitializeVertices(const Vector3& pos, float width);
|
||||||
void Update();
|
void Update();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void TransformVertices(float vel, float scaleRate);
|
void TransformVertices(float vel, float scaleRate);
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevVertices[0] = Vertices[0];
|
||||||
|
PrevVertices[1] = Vertices[1];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Members
|
// Members
|
||||||
|
|
|
@ -147,6 +147,8 @@ namespace TEN::Effects::Bubble
|
||||||
if (bubble.Life <= 0.0f)
|
if (bubble.Life <= 0.0f)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
bubble.StoreInterpolationData();
|
||||||
|
|
||||||
// Update room number. TODO: Should use GetPointCollision(), but calling it for each bubble is very inefficient.
|
// Update room number. TODO: Should use GetPointCollision(), but calling it for each bubble is very inefficient.
|
||||||
auto roomVector = RoomVector(bubble.RoomNumber, int(bubble.Position.y - bubble.Gravity));
|
auto roomVector = RoomVector(bubble.RoomNumber, int(bubble.Position.y - bubble.Gravity));
|
||||||
int roomNumber = GetRoomVector(roomVector, Vector3i(bubble.Position.x, bubble.Position.y - bubble.Gravity, bubble.Position.z)).RoomNumber;
|
int roomNumber = GetRoomVector(roomVector, Vector3i(bubble.Position.x, bubble.Position.y - bubble.Gravity, bubble.Position.z)).RoomNumber;
|
||||||
|
|
|
@ -30,6 +30,19 @@ namespace TEN::Effects::Bubble
|
||||||
float Gravity = 0.0f;
|
float Gravity = 0.0f;
|
||||||
float OscillationPeriod = 0.0f;
|
float OscillationPeriod = 0.0f;
|
||||||
float OscillationVelocity = 0.0f;
|
float OscillationVelocity = 0.0f;
|
||||||
|
|
||||||
|
Vector3 PrevPosition = Vector3::Zero;
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
Vector2 PrevSize = Vector2::Zero;
|
||||||
|
float PrevLife = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = Position;
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevSize = Size;
|
||||||
|
PrevLife = Life;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<Bubble> Bubbles;
|
extern std::vector<Bubble> Bubbles;
|
||||||
|
|
|
@ -133,12 +133,12 @@ void TriggerChaffSmoke(const Vector3i& pos, const Vector3i& vel, int speed, bool
|
||||||
|
|
||||||
smoke->blendMode = BlendMode::Additive;
|
smoke->blendMode = BlendMode::Additive;
|
||||||
|
|
||||||
smoke->x = pos.x + (GetRandomControl() & 7) - 3;
|
smoke->position.x = pos.x + (GetRandomControl() & 7) - 3;
|
||||||
smoke->y = pos.y + (GetRandomControl() & 7) - 3;
|
smoke->position.y = pos.y + (GetRandomControl() & 7) - 3;
|
||||||
smoke->z = pos.z + (GetRandomControl() & 7) - 3;
|
smoke->position.z = pos.z + (GetRandomControl() & 7) - 3;
|
||||||
smoke->xVel = vel.x + ((GetRandomDraw() & 63) - 32);
|
smoke->velocity.x = vel.x + ((GetRandomDraw() & 63) - 32);
|
||||||
smoke->yVel = vel.y;
|
smoke->velocity.y = vel.y;
|
||||||
smoke->zVel = vel.z + ((GetRandomDraw() & 63) - 32);
|
smoke->velocity.z = vel.z + ((GetRandomDraw() & 63) - 32);
|
||||||
smoke->friction = 4;
|
smoke->friction = 4;
|
||||||
|
|
||||||
if (GetRandomControl() & 1)
|
if (GetRandomControl() & 1)
|
||||||
|
|
|
@ -216,6 +216,8 @@ void UpdateDebris()
|
||||||
{
|
{
|
||||||
if (deb.active)
|
if (deb.active)
|
||||||
{
|
{
|
||||||
|
deb.StoreInterpolationData();
|
||||||
|
|
||||||
FloorInfo* floor;
|
FloorInfo* floor;
|
||||||
short roomNumber;
|
short roomNumber;
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,13 @@ struct DebrisFragment
|
||||||
bool active;
|
bool active;
|
||||||
bool isStatic;
|
bool isStatic;
|
||||||
Matrix Transform;
|
Matrix Transform;
|
||||||
|
|
||||||
|
Matrix PrevTransform = Matrix::Identity;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevTransform = Transform;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern SHATTER_ITEM ShatterItem;
|
extern SHATTER_ITEM ShatterItem;
|
||||||
|
|
|
@ -107,6 +107,8 @@ namespace TEN::Effects::Drip
|
||||||
if (drip.Life <= 0.0f)
|
if (drip.Life <= 0.0f)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
drip.StoreInterpolationData();
|
||||||
|
|
||||||
// Update velocity.
|
// Update velocity.
|
||||||
drip.Velocity.y += drip.Gravity;
|
drip.Velocity.y += drip.Gravity;
|
||||||
if (TestEnvironment(ENV_FLAG_WIND, drip.RoomNumber))
|
if (TestEnvironment(ENV_FLAG_WIND, drip.RoomNumber))
|
||||||
|
|
|
@ -15,6 +15,21 @@ namespace TEN::Effects::Drip
|
||||||
float Life = 0.0f;
|
float Life = 0.0f;
|
||||||
float LifeMax = 0.0f;
|
float LifeMax = 0.0f;
|
||||||
float Gravity = 0.0f;
|
float Gravity = 0.0f;
|
||||||
|
|
||||||
|
Vector3 PrevPosition = Vector3::Zero;
|
||||||
|
Vector3 PrevVelocity = Vector3::Zero;
|
||||||
|
Vector2 PrevSize = Vector2::Zero;
|
||||||
|
Vector4 PrevColor = Vector4::Zero;
|
||||||
|
float PrevLife = 0.0f;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = Position;
|
||||||
|
PrevColor = Color;
|
||||||
|
PrevSize = Size;
|
||||||
|
PrevLife = Life;
|
||||||
|
PrevVelocity = Velocity;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<Drip> Drips;
|
extern std::vector<Drip> Drips;
|
||||||
|
|
|
@ -126,46 +126,42 @@ void DetatchSpark(int number, SpriteEnumFlag type)
|
||||||
|
|
||||||
Particle* GetFreeParticle()
|
Particle* GetFreeParticle()
|
||||||
{
|
{
|
||||||
int result = -1;
|
int partID = NO_VALUE;
|
||||||
|
|
||||||
// Get first free available spark
|
|
||||||
|
|
||||||
|
// Get first free available particle.
|
||||||
for (int i = 0; i < MAX_PARTICLES; i++)
|
for (int i = 0; i < MAX_PARTICLES; i++)
|
||||||
{
|
{
|
||||||
auto* particle = &Particles[i];
|
const auto& part = Particles[i];
|
||||||
|
if (!part.on)
|
||||||
if (!particle->on)
|
|
||||||
{
|
{
|
||||||
result = i;
|
partID = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// No free sparks left, hijack existing one with less possible life
|
// No free particles; get particle with shortest life.
|
||||||
|
float shortestLife = INFINITY;
|
||||||
int life = INT_MAX;
|
if (partID == NO_VALUE)
|
||||||
if (result == -1)
|
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_PARTICLES; i++)
|
for (int i = 0; i < MAX_PARTICLES; i++)
|
||||||
{
|
{
|
||||||
auto* particle = &Particles[i];
|
const auto& part = Particles[i];
|
||||||
|
|
||||||
if (particle->life < life && particle->dynamic == -1 && !(particle->flags & SP_EXPLOSION))
|
if (part.life < shortestLife && part.dynamic == NO_VALUE && !(part.flags & SP_EXPLOSION))
|
||||||
{
|
{
|
||||||
result = i;
|
partID = i;
|
||||||
life = particle->life;
|
shortestLife = part.life;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* spark = &Particles[result];
|
auto& part = Particles[partID];
|
||||||
|
part.spriteIndex = Objects[ID_DEFAULT_SPRITES].meshIndex;
|
||||||
|
part.blendMode = BlendMode::Additive;
|
||||||
|
part.extras = 0;
|
||||||
|
part.dynamic = NO_VALUE;
|
||||||
|
|
||||||
spark->extras = 0;
|
return ∂
|
||||||
spark->dynamic = -1;
|
|
||||||
spark->spriteIndex = Objects[ID_DEFAULT_SPRITES].meshIndex;
|
|
||||||
spark->blendMode = BlendMode::Additive;
|
|
||||||
|
|
||||||
return spark;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetSpriteSequence(Particle& particle, GAME_OBJECT_ID objectID)
|
void SetSpriteSequence(Particle& particle, GAME_OBJECT_ID objectID)
|
||||||
|
@ -209,6 +205,8 @@ void UpdateSparks()
|
||||||
|
|
||||||
if (spark->on)
|
if (spark->on)
|
||||||
{
|
{
|
||||||
|
spark->StoreInterpolationData();
|
||||||
|
|
||||||
spark->life--;
|
spark->life--;
|
||||||
|
|
||||||
if (!spark->life)
|
if (!spark->life)
|
||||||
|
@ -1057,6 +1055,8 @@ void UpdateSplashes()
|
||||||
|
|
||||||
if (splash.isActive)
|
if (splash.isActive)
|
||||||
{
|
{
|
||||||
|
splash.StoreInterpolationData();
|
||||||
|
|
||||||
splash.life--;
|
splash.life--;
|
||||||
if (splash.life <= 0)
|
if (splash.life <= 0)
|
||||||
splash.isActive = false;
|
splash.isActive = false;
|
||||||
|
@ -1246,7 +1246,7 @@ void KillAllCurrentItems(short itemNumber)
|
||||||
// TODO: Reimplement this functionality.
|
// TODO: Reimplement this functionality.
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Rname to SpawnDynamicLight().
|
// TODO: Rename to SpawnDynamicLight().
|
||||||
void TriggerDynamicLight(const Vector3& pos, const Color& color, float falloff)
|
void TriggerDynamicLight(const Vector3& pos, const Color& color, float falloff)
|
||||||
{
|
{
|
||||||
g_Renderer.AddDynamicLight(
|
g_Renderer.AddDynamicLight(
|
||||||
|
@ -1470,21 +1470,21 @@ void TriggerFlashSmoke(int x, int y, int z, short roomNumber)
|
||||||
spark->fadeToBlack = 16;
|
spark->fadeToBlack = 16;
|
||||||
spark->blendMode = BlendMode::Additive;
|
spark->blendMode = BlendMode::Additive;
|
||||||
spark->life = spark->sLife = (GetRandomControl() & 0xF) + 64;
|
spark->life = spark->sLife = (GetRandomControl() & 0xF) + 64;
|
||||||
spark->x = (GetRandomControl() & 0x1F) + x - 16;
|
spark->position.x = (GetRandomControl() & 0x1F) + x - 16;
|
||||||
spark->y = (GetRandomControl() & 0x1F) + y - 16;
|
spark->position.y = (GetRandomControl() & 0x1F) + y - 16;
|
||||||
spark->z = (GetRandomControl() & 0x1F) + z - 16;
|
spark->position.z = (GetRandomControl() & 0x1F) + z - 16;
|
||||||
|
|
||||||
if (water)
|
if (water)
|
||||||
{
|
{
|
||||||
spark->xVel = spark->yVel = GetRandomControl() & 0x3FF - 512;
|
spark->velocity.x = spark->velocity.y = GetRandomControl() & 0x3FF - 512;
|
||||||
spark->zVel = (GetRandomControl() & 0x3FF) - 512;
|
spark->velocity.z = (GetRandomControl() & 0x3FF) - 512;
|
||||||
spark->friction = 68;
|
spark->friction = 68;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
spark->xVel = 2 * (GetRandomControl() & 0x3FF) - 1024;
|
spark->velocity.x = 2 * (GetRandomControl() & 0x3FF) - 1024;
|
||||||
spark->yVel = -512 - (GetRandomControl() & 0x3FF);
|
spark->velocity.y = -512 - (GetRandomControl() & 0x3FF);
|
||||||
spark->zVel = 2 * (GetRandomControl() & 0x3FF) - 1024;
|
spark->velocity.z = 2 * (GetRandomControl() & 0x3FF) - 1024;
|
||||||
spark->friction = 85;
|
spark->friction = 85;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,8 @@ struct FX_INFO
|
||||||
Vector4 color;
|
Vector4 color;
|
||||||
short flag1;
|
short flag1;
|
||||||
short flag2;
|
short flag2;
|
||||||
|
|
||||||
|
bool DisableInterpolation;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct NODEOFFSET_INFO
|
struct NODEOFFSET_INFO
|
||||||
|
@ -112,17 +114,6 @@ struct SPLASH_SETUP
|
||||||
int room;
|
int room;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RIPPLE_STRUCT
|
|
||||||
{
|
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
int z;
|
|
||||||
char flags;
|
|
||||||
unsigned char life;
|
|
||||||
unsigned char size;
|
|
||||||
unsigned char init;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Particle
|
struct Particle
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
|
@ -162,6 +153,27 @@ struct Particle
|
||||||
int fxObj;
|
int fxObj;
|
||||||
int roomNumber;
|
int roomNumber;
|
||||||
unsigned char nodeNumber; // ParticleNodeOffsetIDs enum.
|
unsigned char nodeNumber; // ParticleNodeOffsetIDs enum.
|
||||||
|
|
||||||
|
int PrevX;
|
||||||
|
int PrevY;
|
||||||
|
int PrevZ;
|
||||||
|
short PrevRotAng;
|
||||||
|
byte PrevR;
|
||||||
|
byte PrevG;
|
||||||
|
byte PrevB;
|
||||||
|
byte PrevScalar;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevX = x;
|
||||||
|
PrevY = y;
|
||||||
|
PrevZ = z;
|
||||||
|
PrevRotAng = rotAng;
|
||||||
|
PrevR = r;
|
||||||
|
PrevG = g;
|
||||||
|
PrevB = b;
|
||||||
|
PrevScalar = scalar;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SPLASH_STRUCT
|
struct SPLASH_STRUCT
|
||||||
|
@ -183,6 +195,25 @@ struct SPLASH_STRUCT
|
||||||
unsigned short life;
|
unsigned short life;
|
||||||
bool isRipple;
|
bool isRipple;
|
||||||
bool isActive;
|
bool isActive;
|
||||||
|
|
||||||
|
Vector3 PrevPosition = Vector3::Zero;
|
||||||
|
float PrevInnerRad = 0.0f;
|
||||||
|
float PrevOuterRad = 0.0f;
|
||||||
|
float PrevHeight = 0.0f;
|
||||||
|
float PrevHeightSpeed = 0.0f;
|
||||||
|
float PrevAnimPhase = 0.0f;
|
||||||
|
unsigned short PrevLife = 0;
|
||||||
|
|
||||||
|
void StoreInterpolationData()
|
||||||
|
{
|
||||||
|
PrevPosition = Vector3(x, y, z);
|
||||||
|
PrevInnerRad = innerRad;
|
||||||
|
PrevOuterRad = outerRad;
|
||||||
|
PrevHeight = height;
|
||||||
|
PrevHeightSpeed = heightSpeed;
|
||||||
|
PrevAnimPhase = animationPhase;
|
||||||
|
PrevLife = life;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParticleDynamic
|
struct ParticleDynamic
|
||||||
|
|
|
@ -49,6 +49,8 @@ namespace TEN::Effects::Explosion
|
||||||
if (!e.active)
|
if (!e.active)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
e.StoreInterpolationData();
|
||||||
|
|
||||||
e.age++;
|
e.age++;
|
||||||
if (e.age > e.life)
|
if (e.age > e.life)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,28 +1,41 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <d3d11.h>
|
#include <d3d11.h>
|
||||||
#include <SimpleMath.h>
|
#include <SimpleMath.h>
|
||||||
|
|
||||||
namespace TEN::Effects::Explosion
|
namespace TEN::Effects::Explosion
|
||||||
{
|
{
|
||||||
struct ExplosionParticle
|
struct ExplosionParticle
|
||||||
{
|
{
|
||||||
Vector3 pos;
|
Vector3 pos;
|
||||||
Vector3 vel;
|
Vector3 vel;
|
||||||
Vector4 tint;
|
Vector4 tint;
|
||||||
float size;
|
float size;
|
||||||
float rotation;
|
float rotation;
|
||||||
float angularVel;
|
float angularVel;
|
||||||
float age;
|
float age;
|
||||||
float life;
|
float life;
|
||||||
int room;
|
int room;
|
||||||
int sprite;
|
int sprite;
|
||||||
bool active;
|
bool active;
|
||||||
};
|
|
||||||
extern std::array<ExplosionParticle, 64> explosionParticles;
|
Vector3 oldPos;
|
||||||
|
Vector4 oldTint;
|
||||||
void TriggerExplosion(const Vector3& pos, float size, bool triggerSparks, bool triggerSmoke, bool triggerShockwave, int room);
|
float oldSize;
|
||||||
void UpdateExplosionParticles();
|
float oldRotation;
|
||||||
ExplosionParticle& getFreeExplosionParticle();
|
|
||||||
void SpawnExplosionParticle(const Vector3& pos);
|
void StoreInterpolationData()
|
||||||
}
|
{
|
||||||
|
oldPos = pos;
|
||||||
|
oldTint = tint;
|
||||||
|
oldSize = size;
|
||||||
|
oldRotation = rotation;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
extern std::array<ExplosionParticle, 64> explosionParticles;
|
||||||
|
|
||||||
|
void TriggerExplosion(const Vector3& pos, float size, bool triggerSparks, bool triggerSmoke, bool triggerShockwave, int room);
|
||||||
|
void UpdateExplosionParticles();
|
||||||
|
ExplosionParticle& getFreeExplosionParticle();
|
||||||
|
void SpawnExplosionParticle(const Vector3& pos);
|
||||||
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue