mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Use script to generate object list, also migrate flatbuffer to powershell script
This commit is contained in:
parent
a6ec51e9d4
commit
935b26bd66
13 changed files with 417 additions and 187 deletions
|
@ -192,7 +192,7 @@
|
||||||
<h3>Parameters:</h3>
|
<h3>Parameters:</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="parameter">ID</span>
|
<li><span class="parameter">ID</span>
|
||||||
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#">ObjID</a></span>
|
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#SpriteConstants">SpriteConstants</a></span>
|
||||||
of the sprite sequence object.
|
of the sprite sequence object.
|
||||||
</li>
|
</li>
|
||||||
<li><span class="parameter">int</span>
|
<li><span class="parameter">int</span>
|
||||||
|
@ -242,7 +242,7 @@
|
||||||
<h3>Returns:</h3>
|
<h3>Returns:</h3>
|
||||||
<ol>
|
<ol>
|
||||||
|
|
||||||
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#">ObjID</a></span>
|
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#SpriteConstants">SpriteConstants</a></span>
|
||||||
Sprite sequence object ID.
|
Sprite sequence object ID.
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
@ -360,14 +360,14 @@
|
||||||
<strong>DisplaySprite:SetObjectID(New)</strong>
|
<strong>DisplaySprite:SetObjectID(New)</strong>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Set the sprite sequence object ID used by the display sprite. (Objects.ObjID)
|
Set the sprite sequence object ID used by the display sprite. (Objects.ObjID.SpriteConstants)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Parameters:</h3>
|
<h3>Parameters:</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="parameter">New</span>
|
<li><span class="parameter">New</span>
|
||||||
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#">ObjID</a></span>
|
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#SpriteConstants">SpriteConstants</a></span>
|
||||||
sprite sequence object ID.
|
sprite sequence object ID.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -123,6 +123,10 @@
|
||||||
<td class="name" ><a href="#PickupConstants">PickupConstants</a></td>
|
<td class="name" ><a href="#PickupConstants">PickupConstants</a></td>
|
||||||
<td class="summary">Objects.ObjID pickup constants.</td>
|
<td class="summary">Objects.ObjID pickup constants.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" ><a href="#SpriteConstants">SpriteConstants</a></td>
|
||||||
|
<td class="summary">Objects.ObjID sprite constants.</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
@ -137,7 +141,8 @@
|
||||||
<strong>Members</strong>
|
<strong>Members</strong>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Objects.ObjID constants. </p>
|
|
||||||
|
<p>Objects.ObjID constants. </p>
|
||||||
|
|
||||||
<p>The following constants are inside ObjID.</p>
|
<p>The following constants are inside ObjID.</p>
|
||||||
|
|
||||||
|
@ -290,6 +295,7 @@ GLADIATOR
|
||||||
CYBORG
|
CYBORG
|
||||||
SNIPER
|
SNIPER
|
||||||
CHEF
|
CHEF
|
||||||
|
KOLD
|
||||||
WINGED_MUMMY
|
WINGED_MUMMY
|
||||||
CENTAUR_MUTANT
|
CENTAUR_MUTANT
|
||||||
DOPPELGANGER
|
DOPPELGANGER
|
||||||
|
@ -314,14 +320,14 @@ SWORD_GUARDIAN
|
||||||
SWORD_GUARDIAN_STATUE
|
SWORD_GUARDIAN_STATUE
|
||||||
SHIVA
|
SHIVA
|
||||||
SHIVA_STATUE
|
SHIVA_STATUE
|
||||||
TRIBEBOSS
|
WILLARD
|
||||||
CIVVY
|
CIVVY
|
||||||
MUTANT2
|
MUTANT2
|
||||||
LIZARD
|
LIZARD
|
||||||
TONY_BOSS
|
TONY_BOSS
|
||||||
TONY_BOSS_FLAME
|
TONY_BOSS_FLAME
|
||||||
PUNA_BOSS
|
PUNA_BOSS
|
||||||
SOPHIA_LEE_BOSS
|
SOPHIA_LEIGH_BOSS
|
||||||
LASER_BOLT
|
LASER_BOLT
|
||||||
SKELETON
|
SKELETON
|
||||||
MUMMY
|
MUMMY
|
||||||
|
@ -353,7 +359,7 @@ ATTACK_SUB
|
||||||
IMP
|
IMP
|
||||||
IMP_ROCK
|
IMP_ROCK
|
||||||
GUNSHIP
|
GUNSHIP
|
||||||
AUTOGUN
|
AUTO_GUN_VCI
|
||||||
ROMAN_GOD1
|
ROMAN_GOD1
|
||||||
ROMAN_GOD2
|
ROMAN_GOD2
|
||||||
LAGOON_WITCH
|
LAGOON_WITCH
|
||||||
|
@ -362,6 +368,7 @@ BOSS_EXPLOSION_SHOCKWAVE
|
||||||
BOSS_EXPLOSION_RING
|
BOSS_EXPLOSION_RING
|
||||||
CLAW_MUTANT
|
CLAW_MUTANT
|
||||||
WASP_MUTANT
|
WASP_MUTANT
|
||||||
|
TWIN_AUTO_GUN
|
||||||
SKATEBOARD
|
SKATEBOARD
|
||||||
SKATEBOARD_KID
|
SKATEBOARD_KID
|
||||||
WINSTON
|
WINSTON
|
||||||
|
@ -729,7 +736,6 @@ BURNING_TORCH_ITEM
|
||||||
CLOCKWORK_BEETLE
|
CLOCKWORK_BEETLE
|
||||||
CLOCKWORK_BEETLE_COMBO1
|
CLOCKWORK_BEETLE_COMBO1
|
||||||
CLOCKWORK_BEETLE_COMBO2
|
CLOCKWORK_BEETLE_COMBO2
|
||||||
|
|
||||||
SWITCH_TYPE1
|
SWITCH_TYPE1
|
||||||
SWITCH_TYPE2
|
SWITCH_TYPE2
|
||||||
SWITCH_TYPE3
|
SWITCH_TYPE3
|
||||||
|
@ -751,10 +757,10 @@ SHOOT_SWITCH2
|
||||||
SHOOT_SWITCH3
|
SHOOT_SWITCH3
|
||||||
SHOOT_SWITCH4
|
SHOOT_SWITCH4
|
||||||
AIRLOCK_SWITCH
|
AIRLOCK_SWITCH
|
||||||
ID_UNDERWATER_WALL_SWITCH_1
|
UNDERWATER_WALL_SWITCH1
|
||||||
ID_UNDERWATER_WALL_SWITCH_2
|
UNDERWATER_WALL_SWITCH2
|
||||||
ID_UNDERWATER_CEILING_SWITCH_1
|
UNDERWATER_CEILING_SWITCH1
|
||||||
ID_UNDERWATER_CEILING_SWITCH_2
|
UNDERWATER_CEILING_SWITCH2
|
||||||
TURN_SWITCH
|
TURN_SWITCH
|
||||||
COG_SWITCH
|
COG_SWITCH
|
||||||
LEVER_SWITCH
|
LEVER_SWITCH
|
||||||
|
@ -901,7 +907,7 @@ FLOOR_LASERS
|
||||||
KILL_ALL_TRIGGERS
|
KILL_ALL_TRIGGERS
|
||||||
TRIGGER_TRIGGERER
|
TRIGGER_TRIGGERER
|
||||||
HIGH_OBJECT1
|
HIGH_OBJECT1
|
||||||
HIGH_OBJECT2
|
EMBER_EMITTER
|
||||||
SMASH_OBJECT1
|
SMASH_OBJECT1
|
||||||
SMASH_OBJECT2
|
SMASH_OBJECT2
|
||||||
SMASH_OBJECT3
|
SMASH_OBJECT3
|
||||||
|
@ -1089,8 +1095,6 @@ BRIDGE_TILT3
|
||||||
BRIDGE_TILT4
|
BRIDGE_TILT4
|
||||||
BRIDGE_CUSTOM
|
BRIDGE_CUSTOM
|
||||||
HORIZON
|
HORIZON
|
||||||
BINOCULAR_GRAPHICS
|
|
||||||
TARGET_GRAPHICS
|
|
||||||
SKY_GRAPHICS
|
SKY_GRAPHICS
|
||||||
DEFAULT_SPRITES
|
DEFAULT_SPRITES
|
||||||
MISC_SPRITES
|
MISC_SPRITES
|
||||||
|
@ -1105,28 +1109,20 @@ RUBBER_BOAT_WAVE_SPRITES
|
||||||
SKIDOO_SNOW_TRAIL_SPRITES
|
SKIDOO_SNOW_TRAIL_SPRITES
|
||||||
KAYAK_PADDLE_TRAIL_SPRITE
|
KAYAK_PADDLE_TRAIL_SPRITE
|
||||||
KAYAK_WAKE_SPRTIES
|
KAYAK_WAKE_SPRTIES
|
||||||
BINOCULAR_GRAPHIC
|
BINOCULAR_GRAPHICS
|
||||||
LASER_SIGHT_GRAPHIC
|
LASERSIGHT_GRAPHICS
|
||||||
CAUSTICS_TEXTURES
|
CAUSTIC_TEXTURES
|
||||||
BAR_BORDER_GRAPHIC
|
BAR_BORDER_GRAPHICS
|
||||||
HEALTH_BAR_TEXTURE
|
HEALTH_BAR_TEXTURE
|
||||||
AIR_BAR_TEXTURE
|
AIR_BAR_TEXTURE
|
||||||
DASH_BAR_TEXTURE
|
DASH_BAR_TEXTURE
|
||||||
SFX_BAR_TEXTURE
|
SFX_BAR_TEXTURE
|
||||||
SPEEDOMETER
|
CROSSHAIR_GRAPHICS
|
||||||
CUSTOM_BAR_GRAPHIC
|
SPEEDOMETER_GRAPHICS
|
||||||
CUSTOM_AMMO_GRAPHIC
|
CUSTOM_BAR_GRAPHICS
|
||||||
|
CUSTOM_AMMO_GRAPHICS
|
||||||
PANEL_BORDER
|
|
||||||
PANEL_MIDDLE
|
|
||||||
PANEL_CORNER
|
|
||||||
PANEL_DIAGONAL
|
|
||||||
PANEL_STRIP
|
|
||||||
PANEL_HALF_BORDER1
|
|
||||||
PANEL_HALF_BORDER2
|
|
||||||
PANEL_MIDDLE_CORNER
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>Table of constants.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1141,7 +1137,8 @@ PANEL_MIDDLE_CORNER
|
||||||
<strong>PickupConstants</strong>
|
<strong>PickupConstants</strong>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Objects.ObjID pickup constants. </p>
|
|
||||||
|
<p>Objects.ObjID pickup constants. </p>
|
||||||
|
|
||||||
<p>The following ObjID members refer to pickups.</p>
|
<p>The following ObjID members refer to pickups.</p>
|
||||||
|
|
||||||
|
@ -1289,6 +1286,30 @@ PICKUP_ITEM15_COMBO1
|
||||||
PICKUP_ITEM15_COMBO2
|
PICKUP_ITEM15_COMBO2
|
||||||
PICKUP_ITEM16_COMBO1
|
PICKUP_ITEM16_COMBO1
|
||||||
PICKUP_ITEM16_COMBO2
|
PICKUP_ITEM16_COMBO2
|
||||||
|
EXAMINE1
|
||||||
|
EXAMINE2
|
||||||
|
EXAMINE3
|
||||||
|
EXAMINE4
|
||||||
|
EXAMINE5
|
||||||
|
EXAMINE6
|
||||||
|
EXAMINE7
|
||||||
|
EXAMINE8
|
||||||
|
EXAMINE1_COMBO1
|
||||||
|
EXAMINE1_COMBO2
|
||||||
|
EXAMINE2_COMBO1
|
||||||
|
EXAMINE2_COMBO2
|
||||||
|
EXAMINE3_COMBO1
|
||||||
|
EXAMINE3_COMBO2
|
||||||
|
EXAMINE4_COMBO1
|
||||||
|
EXAMINE4_COMBO2
|
||||||
|
EXAMINE5_COMBO1
|
||||||
|
EXAMINE5_COMBO2
|
||||||
|
EXAMINE6_COMBO1
|
||||||
|
EXAMINE6_COMBO2
|
||||||
|
EXAMINE7_COMBO1
|
||||||
|
EXAMINE7_COMBO2
|
||||||
|
EXAMINE8_COMBO1
|
||||||
|
EXAMINE8_COMBO2
|
||||||
HAMMER_ITEM
|
HAMMER_ITEM
|
||||||
CROWBAR_ITEM
|
CROWBAR_ITEM
|
||||||
BURNING_TORCH_ITEM
|
BURNING_TORCH_ITEM
|
||||||
|
@ -1326,10 +1347,57 @@ FLARE_INV_ITEM
|
||||||
COMPASS_ITEM
|
COMPASS_ITEM
|
||||||
DIARY_ITEM
|
DIARY_ITEM
|
||||||
STOPWATCH_ITEM
|
STOPWATCH_ITEM
|
||||||
|
MEMCARD_LOAD_INV_ITEM
|
||||||
|
MEMCARD_SAVE_INV_ITEM
|
||||||
PC_LOAD_INV_ITEM
|
PC_LOAD_INV_ITEM
|
||||||
PC_SAVE_INV_ITEM
|
PC_SAVE_INV_ITEM
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>Table of constants.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a name = "SpriteConstants"></a>
|
||||||
|
<strong>SpriteConstants</strong>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<p>Objects.ObjID sprite constants. </p>
|
||||||
|
|
||||||
|
<p>The following ObjID members refer to sprites.</p>
|
||||||
|
|
||||||
|
<pre><code>SKY_GRAPHICS
|
||||||
|
DEFAULT_SPRITES
|
||||||
|
MISC_SPRITES
|
||||||
|
CUSTOM_SPRITES
|
||||||
|
FIRE_SPRITES
|
||||||
|
SMOKE_SPRITES
|
||||||
|
SPARK_SPRITE
|
||||||
|
DRIP_SPRITE
|
||||||
|
EXPLOSION_SPRITES
|
||||||
|
MOTORBOAT_FOAM_SPRITES
|
||||||
|
RUBBER_BOAT_WAVE_SPRITES
|
||||||
|
SKIDOO_SNOW_TRAIL_SPRITES
|
||||||
|
KAYAK_PADDLE_TRAIL_SPRITE
|
||||||
|
LASERSIGHT_GRAPHICS
|
||||||
|
CAUSTIC_TEXTURES
|
||||||
|
BAR_BORDER_GRAPHICS
|
||||||
|
HEALTH_BAR_TEXTURE
|
||||||
|
AIR_BAR_TEXTURE
|
||||||
|
DASH_BAR_TEXTURE
|
||||||
|
SFX_BAR_TEXTURE
|
||||||
|
CROSSHAIR_GRAPHICS
|
||||||
|
SPEEDOMETER_GRAPHICS
|
||||||
|
CUSTOM_BAR_GRAPHICS
|
||||||
|
CUSTOM_AMMO_GRAPHICS
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
148
Documentation/generate_objectlist.ps1
Normal file
148
Documentation/generate_objectlist.ps1
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
# PowerShell script to generate ObjectIDs.h from game_object_ids.h
|
||||||
|
|
||||||
|
$inputFile = "../TombEngine/Objects/game_object_ids.h" # Adjust path if necessary.
|
||||||
|
$tempOutputFile = "../TombEngine/Scripting/Internal/TEN/Objects/temp.h"
|
||||||
|
$outputFile = "../TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h"
|
||||||
|
|
||||||
|
# Read the input file
|
||||||
|
if (-Not (Test-Path $inputFile))
|
||||||
|
{
|
||||||
|
Write-Host "Error: File '$inputFile' not found."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the last modified times for both files.
|
||||||
|
$inputFileLastModified = (Get-Item $inputFile).LastWriteTime
|
||||||
|
if (Test-Path $outputFile) {
|
||||||
|
$outputFileLastModified = (Get-Item $outputFile).LastWriteTime
|
||||||
|
} else {
|
||||||
|
$outputFileLastModified = [datetime]::MinValue # If output file doesn't exist, treat it as very old.
|
||||||
|
}
|
||||||
|
|
||||||
|
# Exit early if the output file is newer than the input file.
|
||||||
|
if ($outputFileLastModified -ge $inputFileLastModified) {
|
||||||
|
Write-Host "$outputFile is up to date. No changes made."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
$content = Get-Content $inputFile
|
||||||
|
|
||||||
|
# Extract enum values and categorize them.
|
||||||
|
$enumValues = @()
|
||||||
|
$pickupConstants = @()
|
||||||
|
$spriteConstants = @()
|
||||||
|
|
||||||
|
$inPickupSection = $false
|
||||||
|
$inSpriteSection = $false
|
||||||
|
|
||||||
|
foreach ($line in $content)
|
||||||
|
{
|
||||||
|
if ($line -match "^\s*ID_([A-Za-z0-9_]+)")
|
||||||
|
{
|
||||||
|
$enumName = $matches[1]
|
||||||
|
$enumValues += $enumName
|
||||||
|
|
||||||
|
if ($enumName -match "_ITEM|EXAMINE")
|
||||||
|
{
|
||||||
|
$pickupConstants += $enumName
|
||||||
|
}
|
||||||
|
elseif ($enumName -match "_SPRITE|_GRAPHIC|TEXTURE")
|
||||||
|
{
|
||||||
|
# These two object IDs are deprecated 3D objects, not sprites.
|
||||||
|
if ($enumName -in @("BINOCULAR_GRAPHICS", "TARGET_GRAPHICS"))
|
||||||
|
{
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
$spriteConstants += $enumName
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($enumValues.Count -gt 0) { $enumValues = $enumValues[1..($enumValues.Count - 2)] }
|
||||||
|
|
||||||
|
# Generate ObjectIDs.h content.
|
||||||
|
$header = @"
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Last generated on $(Get-Date -Format "dd/MM/yyyy")
|
||||||
|
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <string>
|
||||||
|
#include "Objects/game_object_ids.h"
|
||||||
|
|
||||||
|
/***
|
||||||
|
Constants for object IDs.
|
||||||
|
@enum Objects.ObjID
|
||||||
|
@pragma nostrip
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*** Objects.ObjID constants.
|
||||||
|
|
||||||
|
The following constants are inside ObjID.
|
||||||
|
|
||||||
|
"@
|
||||||
|
|
||||||
|
$body = $enumValues | ForEach-Object { "`t$_" }
|
||||||
|
$footer = @"
|
||||||
|
@table Members
|
||||||
|
*/
|
||||||
|
"@
|
||||||
|
|
||||||
|
# Pickup Constants Section.
|
||||||
|
$pickupHeader = @"
|
||||||
|
|
||||||
|
/*** Objects.ObjID pickup constants.
|
||||||
|
|
||||||
|
The following ObjID members refer to pickups.
|
||||||
|
|
||||||
|
"@
|
||||||
|
|
||||||
|
$pickupBody = $pickupConstants | ForEach-Object { "`t$_" }
|
||||||
|
$pickupFooter = @"
|
||||||
|
@table PickupConstants
|
||||||
|
*/
|
||||||
|
"@
|
||||||
|
|
||||||
|
# Sprite Constants Section.
|
||||||
|
$spriteHeader = @"
|
||||||
|
|
||||||
|
/*** Objects.ObjID sprite constants.
|
||||||
|
|
||||||
|
The following ObjID members refer to sprites.
|
||||||
|
|
||||||
|
"@
|
||||||
|
|
||||||
|
$spriteBody = $spriteConstants | ForEach-Object { "`t$_" }
|
||||||
|
$spriteFooter = @"
|
||||||
|
@table SpriteConstants
|
||||||
|
*/
|
||||||
|
"@
|
||||||
|
|
||||||
|
# Map definition.
|
||||||
|
$mapHeader = "static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {"
|
||||||
|
$mapBody = ($enumValues | ForEach-Object { "`t" + '{ "' + "$_" + '", ID_' + "$_" + ' }' }) -join ",`r`n"
|
||||||
|
$mapFooter = "};"
|
||||||
|
|
||||||
|
# Write to output file
|
||||||
|
$header | Set-Content $tempOutputFile
|
||||||
|
$body | Add-Content $tempOutputFile
|
||||||
|
$footer | Add-Content $tempOutputFile
|
||||||
|
$pickupHeader | Add-Content $tempOutputFile
|
||||||
|
$pickupBody | Add-Content $tempOutputFile
|
||||||
|
$pickupFooter | Add-Content $tempOutputFile
|
||||||
|
$spriteHeader | Add-Content $tempOutputFile
|
||||||
|
$spriteBody | Add-Content $tempOutputFile
|
||||||
|
$spriteFooter | Add-Content $tempOutputFile
|
||||||
|
$mapHeader | Add-Content $tempOutputFile
|
||||||
|
$mapBody | ForEach-Object { Add-Content $tempOutputFile $_ }
|
||||||
|
$mapFooter | Add-Content $tempOutputFile
|
||||||
|
|
||||||
|
# Rename the temporary file to the final name.
|
||||||
|
if (Test-Path $outputFile) {
|
||||||
|
Remove-Item $outputFile -Force
|
||||||
|
}
|
||||||
|
Move-Item -Path $tempOutputFile -Destination $outputFile -Force
|
||||||
|
|
||||||
|
Write-Host "Generated $outputFile successfully."
|
|
@ -70,14 +70,14 @@ namespace TEN::Hud
|
||||||
|
|
||||||
// Draw dial.
|
// Draw dial.
|
||||||
AddDisplaySprite(
|
AddDisplaySprite(
|
||||||
ID_SPEEDOMETER, DIAL_ELEMENT_SPRITE_ID,
|
ID_SPEEDOMETER_GRAPHICS, 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);
|
DisplaySpritePhase::Draw);
|
||||||
|
|
||||||
// Draw pointer.
|
// Draw pointer.
|
||||||
AddDisplaySprite(
|
AddDisplaySprite(
|
||||||
ID_SPEEDOMETER, POINTER_ELEMENT_SPRITE_ID,
|
ID_SPEEDOMETER_GRAPHICS, POINTER_ELEMENT_SPRITE_ID,
|
||||||
POS, pointerAngle + POINTER_ANGLE_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);
|
DisplaySpritePhase::Draw);
|
||||||
|
|
|
@ -132,7 +132,7 @@ namespace TEN::Hud
|
||||||
|
|
||||||
void CrosshairData::Draw() const
|
void CrosshairData::Draw() const
|
||||||
{
|
{
|
||||||
constexpr auto SPRITE_SEQUENCE_OBJECT_ID = ID_CROSSHAIR;
|
constexpr auto SPRITE_SEQUENCE_OBJECT_ID = ID_CROSSHAIR_GRAPHICS;
|
||||||
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
|
||||||
|
|
|
@ -176,7 +176,7 @@ void StartSwitches(ObjectInfo* object)
|
||||||
object->shadowType = ShadowMode::All;
|
object->shadowType = ShadowMode::All;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int objectID = ID_UNDERWATER_WALL_SWITCH_1; objectID <= ID_UNDERWATER_WALL_SWITCH_2; objectID++)
|
for (int objectID = ID_UNDERWATER_WALL_SWITCH1; objectID <= ID_UNDERWATER_WALL_SWITCH2; objectID++)
|
||||||
{
|
{
|
||||||
object = &Objects[objectID];
|
object = &Objects[objectID];
|
||||||
if (object->loaded)
|
if (object->loaded)
|
||||||
|
@ -186,7 +186,7 @@ void StartSwitches(ObjectInfo* object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int objectID = ID_UNDERWATER_CEILING_SWITCH_1; objectID <= ID_UNDERWATER_CEILING_SWITCH_2; objectID++)
|
for (int objectID = ID_UNDERWATER_CEILING_SWITCH1; objectID <= ID_UNDERWATER_CEILING_SWITCH2; objectID++)
|
||||||
{
|
{
|
||||||
object = &Objects[objectID];
|
object = &Objects[objectID];
|
||||||
if (object->loaded)
|
if (object->loaded)
|
||||||
|
|
|
@ -625,10 +625,10 @@ enum GAME_OBJECT_ID : short
|
||||||
ID_SHOOT_SWITCH3,
|
ID_SHOOT_SWITCH3,
|
||||||
ID_SHOOT_SWITCH4,
|
ID_SHOOT_SWITCH4,
|
||||||
ID_AIRLOCK_SWITCH,
|
ID_AIRLOCK_SWITCH,
|
||||||
ID_UNDERWATER_WALL_SWITCH_1,
|
ID_UNDERWATER_WALL_SWITCH1,
|
||||||
ID_UNDERWATER_WALL_SWITCH_2,
|
ID_UNDERWATER_WALL_SWITCH2,
|
||||||
ID_UNDERWATER_CEILING_SWITCH_1,
|
ID_UNDERWATER_CEILING_SWITCH1,
|
||||||
ID_UNDERWATER_CEILING_SWITCH_2,
|
ID_UNDERWATER_CEILING_SWITCH2,
|
||||||
ID_TURN_SWITCH,
|
ID_TURN_SWITCH,
|
||||||
ID_COG_SWITCH,
|
ID_COG_SWITCH,
|
||||||
ID_LEVER_SWITCH,
|
ID_LEVER_SWITCH,
|
||||||
|
@ -973,9 +973,10 @@ enum GAME_OBJECT_ID : short
|
||||||
ID_BRIDGE_CUSTOM,
|
ID_BRIDGE_CUSTOM,
|
||||||
|
|
||||||
ID_HORIZON = 1350,
|
ID_HORIZON = 1350,
|
||||||
ID_BINOCULAR_GRAPHICS,
|
|
||||||
ID_TARGET_GRAPHICS,
|
// Sprite sequences.
|
||||||
ID_SKY_GRAPHICS,
|
|
||||||
|
ID_SKY_GRAPHICS = 1353,
|
||||||
ID_DEFAULT_SPRITES,
|
ID_DEFAULT_SPRITES,
|
||||||
ID_MISC_SPRITES,
|
ID_MISC_SPRITES,
|
||||||
ID_CUSTOM_SPRITES,
|
ID_CUSTOM_SPRITES,
|
||||||
|
@ -990,27 +991,19 @@ enum GAME_OBJECT_ID : short
|
||||||
ID_SKIDOO_SNOW_TRAIL_SPRITES,
|
ID_SKIDOO_SNOW_TRAIL_SPRITES,
|
||||||
ID_KAYAK_PADDLE_TRAIL_SPRITE,
|
ID_KAYAK_PADDLE_TRAIL_SPRITE,
|
||||||
ID_KAYAK_WAKE_SPRTIES,
|
ID_KAYAK_WAKE_SPRTIES,
|
||||||
ID_BINOCULAR_GRAPHIC,
|
ID_BINOCULAR_GRAPHICS,
|
||||||
ID_LASER_SIGHT_GRAPHIC,
|
ID_LASERSIGHT_GRAPHICS,
|
||||||
ID_CAUSTICS_TEXTURES,
|
ID_CAUSTIC_TEXTURES,
|
||||||
ID_BAR_BORDER_GRAPHIC,
|
ID_BAR_BORDER_GRAPHICS,
|
||||||
ID_HEALTH_BAR_TEXTURE,
|
ID_HEALTH_BAR_TEXTURE,
|
||||||
ID_AIR_BAR_TEXTURE,
|
ID_AIR_BAR_TEXTURE,
|
||||||
ID_DASH_BAR_TEXTURE,
|
ID_DASH_BAR_TEXTURE,
|
||||||
ID_SFX_BAR_TEXTURE,
|
ID_SFX_BAR_TEXTURE,
|
||||||
// NOTE: 1378 - 1379 reserved for blood effects. -- Sezz 2023.05.29
|
// NOTE: 1378 - 1379 reserved for blood effects. -- Sezz 2023.05.29
|
||||||
ID_CROSSHAIR = 1380,
|
ID_CROSSHAIR_GRAPHICS = 1380,
|
||||||
ID_SPEEDOMETER,
|
ID_SPEEDOMETER_GRAPHICS,
|
||||||
ID_CUSTOM_BAR_GRAPHIC,
|
ID_CUSTOM_BAR_GRAPHICS,
|
||||||
ID_CUSTOM_AMMO_GRAPHIC,
|
ID_CUSTOM_AMMO_GRAPHICS,
|
||||||
|
|
||||||
ID_PANEL_BORDER = 1400,
|
|
||||||
ID_PANEL_MIDDLE,
|
|
||||||
ID_PANEL_CORNER,
|
|
||||||
ID_PANEL_DIAGONAL,
|
|
||||||
ID_PANEL_STRIP,
|
|
||||||
ID_PANEL_HALF_BORDER1,
|
|
||||||
ID_PANEL_HALF_BORDER2,
|
|
||||||
ID_PANEL_MIDDLE_CORNER,
|
|
||||||
ID_NUMBER_OBJECTS
|
ID_NUMBER_OBJECTS
|
||||||
};
|
};
|
||||||
|
|
|
@ -883,7 +883,7 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
_spriteSequences[SpriteSequencesIds[i]] = sequence;
|
_spriteSequences[SpriteSequencesIds[i]] = sequence;
|
||||||
|
|
||||||
if (SpriteSequencesIds[i] == ID_CAUSTICS_TEXTURES)
|
if (SpriteSequencesIds[i] == ID_CAUSTIC_TEXTURES)
|
||||||
{
|
{
|
||||||
_causticTextures.clear();
|
_causticTextures.clear();
|
||||||
for (int j = 0; j < sequence.SpritesList.size(); j++)
|
for (int j = 0; j < sequence.SpritesList.size(); j++)
|
||||||
|
|
|
@ -2695,8 +2695,8 @@ namespace TEN::Renderer
|
||||||
// Bind caustics texture.
|
// Bind caustics texture.
|
||||||
if (_causticTextures.size() > 0)
|
if (_causticTextures.size() > 0)
|
||||||
{
|
{
|
||||||
int nmeshes = -Objects[ID_CAUSTICS_TEXTURES].nmeshes;
|
int nmeshes = -Objects[ID_CAUSTIC_TEXTURES].nmeshes;
|
||||||
int meshIndex = Objects[ID_CAUSTICS_TEXTURES].meshIndex;
|
int meshIndex = Objects[ID_CAUSTIC_TEXTURES].meshIndex;
|
||||||
int causticsFrame = GlobalCounter % _causticTextures.size();
|
int causticsFrame = GlobalCounter % _causticTextures.size();
|
||||||
BindTexture(TextureRegister::CausticsMap, &_causticTextures[causticsFrame], SamplerStateRegister::AnisotropicClamp);
|
BindTexture(TextureRegister::CausticsMap, &_causticTextures[causticsFrame], SamplerStateRegister::AnisotropicClamp);
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
void Renderer::DrawBar(float percent, const RendererHudBar& bar, GAME_OBJECT_ID textureSlot, int frame, bool isPoisoned)
|
void Renderer::DrawBar(float percent, const RendererHudBar& bar, GAME_OBJECT_ID textureSlot, int frame, bool isPoisoned)
|
||||||
{
|
{
|
||||||
if (!CheckIfSlotExists(ID_BAR_BORDER_GRAPHIC, "Bar rendering"))
|
if (!CheckIfSlotExists(ID_BAR_BORDER_GRAPHICS, "Bar rendering"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
unsigned int strides = sizeof(Vertex);
|
unsigned int strides = sizeof(Vertex);
|
||||||
|
@ -141,7 +141,7 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
BindConstantBufferVS(ConstantBufferRegister::Hud, _cbHUD.get());
|
BindConstantBufferVS(ConstantBufferRegister::Hud, _cbHUD.get());
|
||||||
|
|
||||||
RendererSprite* borderSprite = &_sprites[Objects[ID_BAR_BORDER_GRAPHIC].meshIndex];
|
RendererSprite* borderSprite = &_sprites[Objects[ID_BAR_BORDER_GRAPHICS].meshIndex];
|
||||||
_stHUDBar.BarStartUV = borderSprite->UV[0];
|
_stHUDBar.BarStartUV = borderSprite->UV[0];
|
||||||
_stHUDBar.BarScale = Vector2(borderSprite->Width / (float)borderSprite->Texture->Width, borderSprite->Height / (float)borderSprite->Texture->Height);
|
_stHUDBar.BarScale = Vector2(borderSprite->Width / (float)borderSprite->Texture->Width, borderSprite->Height / (float)borderSprite->Texture->Height);
|
||||||
_cbHUDBar.UpdateData(_stHUDBar, _context.Get());
|
_cbHUDBar.UpdateData(_stHUDBar, _context.Get());
|
||||||
|
@ -266,11 +266,11 @@ namespace TEN::Renderer
|
||||||
|
|
||||||
if (Lara.Control.Look.OpticRange != 0 && !Lara.Control.Look.IsUsingLasersight)
|
if (Lara.Control.Look.OpticRange != 0 && !Lara.Control.Look.IsUsingLasersight)
|
||||||
{
|
{
|
||||||
DrawFullScreenSprite(&_sprites[Objects[ID_BINOCULAR_GRAPHIC].meshIndex], Vector3::One, false);
|
DrawFullScreenSprite(&_sprites[Objects[ID_BINOCULAR_GRAPHICS].meshIndex], Vector3::One, false);
|
||||||
}
|
}
|
||||||
else if (Lara.Control.Look.OpticRange != 0 && Lara.Control.Look.IsUsingLasersight)
|
else if (Lara.Control.Look.OpticRange != 0 && Lara.Control.Look.IsUsingLasersight)
|
||||||
{
|
{
|
||||||
DrawFullScreenSprite(&_sprites[Objects[ID_LASER_SIGHT_GRAPHIC].meshIndex], Vector3::One);
|
DrawFullScreenSprite(&_sprites[Objects[ID_LASERSIGHT_GRAPHICS].meshIndex], Vector3::One);
|
||||||
|
|
||||||
SetBlendMode(BlendMode::Opaque);
|
SetBlendMode(BlendMode::Opaque);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// Last generated on 18/11/2022
|
// Last generated on 11/03/2025
|
||||||
|
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -165,6 +165,7 @@ The following constants are inside ObjID.
|
||||||
CYBORG
|
CYBORG
|
||||||
SNIPER
|
SNIPER
|
||||||
CHEF
|
CHEF
|
||||||
|
KOLD
|
||||||
WINGED_MUMMY
|
WINGED_MUMMY
|
||||||
CENTAUR_MUTANT
|
CENTAUR_MUTANT
|
||||||
DOPPELGANGER
|
DOPPELGANGER
|
||||||
|
@ -189,14 +190,14 @@ The following constants are inside ObjID.
|
||||||
SWORD_GUARDIAN_STATUE
|
SWORD_GUARDIAN_STATUE
|
||||||
SHIVA
|
SHIVA
|
||||||
SHIVA_STATUE
|
SHIVA_STATUE
|
||||||
TRIBEBOSS
|
WILLARD
|
||||||
CIVVY
|
CIVVY
|
||||||
MUTANT2
|
MUTANT2
|
||||||
LIZARD
|
LIZARD
|
||||||
TONY_BOSS
|
TONY_BOSS
|
||||||
TONY_BOSS_FLAME
|
TONY_BOSS_FLAME
|
||||||
PUNA_BOSS
|
PUNA_BOSS
|
||||||
SOPHIA_LEE_BOSS
|
SOPHIA_LEIGH_BOSS
|
||||||
LASER_BOLT
|
LASER_BOLT
|
||||||
SKELETON
|
SKELETON
|
||||||
MUMMY
|
MUMMY
|
||||||
|
@ -228,7 +229,7 @@ The following constants are inside ObjID.
|
||||||
IMP
|
IMP
|
||||||
IMP_ROCK
|
IMP_ROCK
|
||||||
GUNSHIP
|
GUNSHIP
|
||||||
AUTOGUN
|
AUTO_GUN_VCI
|
||||||
ROMAN_GOD1
|
ROMAN_GOD1
|
||||||
ROMAN_GOD2
|
ROMAN_GOD2
|
||||||
LAGOON_WITCH
|
LAGOON_WITCH
|
||||||
|
@ -237,6 +238,7 @@ The following constants are inside ObjID.
|
||||||
BOSS_EXPLOSION_RING
|
BOSS_EXPLOSION_RING
|
||||||
CLAW_MUTANT
|
CLAW_MUTANT
|
||||||
WASP_MUTANT
|
WASP_MUTANT
|
||||||
|
TWIN_AUTO_GUN
|
||||||
SKATEBOARD
|
SKATEBOARD
|
||||||
SKATEBOARD_KID
|
SKATEBOARD_KID
|
||||||
WINSTON
|
WINSTON
|
||||||
|
@ -604,7 +606,6 @@ The following constants are inside ObjID.
|
||||||
CLOCKWORK_BEETLE
|
CLOCKWORK_BEETLE
|
||||||
CLOCKWORK_BEETLE_COMBO1
|
CLOCKWORK_BEETLE_COMBO1
|
||||||
CLOCKWORK_BEETLE_COMBO2
|
CLOCKWORK_BEETLE_COMBO2
|
||||||
|
|
||||||
SWITCH_TYPE1
|
SWITCH_TYPE1
|
||||||
SWITCH_TYPE2
|
SWITCH_TYPE2
|
||||||
SWITCH_TYPE3
|
SWITCH_TYPE3
|
||||||
|
@ -626,10 +627,10 @@ The following constants are inside ObjID.
|
||||||
SHOOT_SWITCH3
|
SHOOT_SWITCH3
|
||||||
SHOOT_SWITCH4
|
SHOOT_SWITCH4
|
||||||
AIRLOCK_SWITCH
|
AIRLOCK_SWITCH
|
||||||
ID_UNDERWATER_WALL_SWITCH_1
|
UNDERWATER_WALL_SWITCH1
|
||||||
ID_UNDERWATER_WALL_SWITCH_2
|
UNDERWATER_WALL_SWITCH2
|
||||||
ID_UNDERWATER_CEILING_SWITCH_1
|
UNDERWATER_CEILING_SWITCH1
|
||||||
ID_UNDERWATER_CEILING_SWITCH_2
|
UNDERWATER_CEILING_SWITCH2
|
||||||
TURN_SWITCH
|
TURN_SWITCH
|
||||||
COG_SWITCH
|
COG_SWITCH
|
||||||
LEVER_SWITCH
|
LEVER_SWITCH
|
||||||
|
@ -776,7 +777,7 @@ The following constants are inside ObjID.
|
||||||
KILL_ALL_TRIGGERS
|
KILL_ALL_TRIGGERS
|
||||||
TRIGGER_TRIGGERER
|
TRIGGER_TRIGGERER
|
||||||
HIGH_OBJECT1
|
HIGH_OBJECT1
|
||||||
HIGH_OBJECT2
|
EMBER_EMITTER
|
||||||
SMASH_OBJECT1
|
SMASH_OBJECT1
|
||||||
SMASH_OBJECT2
|
SMASH_OBJECT2
|
||||||
SMASH_OBJECT3
|
SMASH_OBJECT3
|
||||||
|
@ -964,8 +965,6 @@ The following constants are inside ObjID.
|
||||||
BRIDGE_TILT4
|
BRIDGE_TILT4
|
||||||
BRIDGE_CUSTOM
|
BRIDGE_CUSTOM
|
||||||
HORIZON
|
HORIZON
|
||||||
BINOCULAR_GRAPHICS
|
|
||||||
TARGET_GRAPHICS
|
|
||||||
SKY_GRAPHICS
|
SKY_GRAPHICS
|
||||||
DEFAULT_SPRITES
|
DEFAULT_SPRITES
|
||||||
MISC_SPRITES
|
MISC_SPRITES
|
||||||
|
@ -980,27 +979,18 @@ The following constants are inside ObjID.
|
||||||
SKIDOO_SNOW_TRAIL_SPRITES
|
SKIDOO_SNOW_TRAIL_SPRITES
|
||||||
KAYAK_PADDLE_TRAIL_SPRITE
|
KAYAK_PADDLE_TRAIL_SPRITE
|
||||||
KAYAK_WAKE_SPRTIES
|
KAYAK_WAKE_SPRTIES
|
||||||
BINOCULAR_GRAPHIC
|
BINOCULAR_GRAPHICS
|
||||||
LASER_SIGHT_GRAPHIC
|
LASERSIGHT_GRAPHICS
|
||||||
CAUSTICS_TEXTURES
|
CAUSTIC_TEXTURES
|
||||||
BAR_BORDER_GRAPHIC
|
BAR_BORDER_GRAPHICS
|
||||||
HEALTH_BAR_TEXTURE
|
HEALTH_BAR_TEXTURE
|
||||||
AIR_BAR_TEXTURE
|
AIR_BAR_TEXTURE
|
||||||
DASH_BAR_TEXTURE
|
DASH_BAR_TEXTURE
|
||||||
SFX_BAR_TEXTURE
|
SFX_BAR_TEXTURE
|
||||||
SPEEDOMETER
|
CROSSHAIR_GRAPHICS
|
||||||
CUSTOM_BAR_GRAPHIC
|
SPEEDOMETER_GRAPHICS
|
||||||
CUSTOM_AMMO_GRAPHIC
|
CUSTOM_BAR_GRAPHICS
|
||||||
|
CUSTOM_AMMO_GRAPHICS
|
||||||
PANEL_BORDER
|
|
||||||
PANEL_MIDDLE
|
|
||||||
PANEL_CORNER
|
|
||||||
PANEL_DIAGONAL
|
|
||||||
PANEL_STRIP
|
|
||||||
PANEL_HALF_BORDER1
|
|
||||||
PANEL_HALF_BORDER2
|
|
||||||
PANEL_MIDDLE_CORNER
|
|
||||||
Table of constants.
|
|
||||||
@table Members
|
@table Members
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1152,6 +1142,30 @@ The following ObjID members refer to pickups.
|
||||||
PICKUP_ITEM15_COMBO2
|
PICKUP_ITEM15_COMBO2
|
||||||
PICKUP_ITEM16_COMBO1
|
PICKUP_ITEM16_COMBO1
|
||||||
PICKUP_ITEM16_COMBO2
|
PICKUP_ITEM16_COMBO2
|
||||||
|
EXAMINE1
|
||||||
|
EXAMINE2
|
||||||
|
EXAMINE3
|
||||||
|
EXAMINE4
|
||||||
|
EXAMINE5
|
||||||
|
EXAMINE6
|
||||||
|
EXAMINE7
|
||||||
|
EXAMINE8
|
||||||
|
EXAMINE1_COMBO1
|
||||||
|
EXAMINE1_COMBO2
|
||||||
|
EXAMINE2_COMBO1
|
||||||
|
EXAMINE2_COMBO2
|
||||||
|
EXAMINE3_COMBO1
|
||||||
|
EXAMINE3_COMBO2
|
||||||
|
EXAMINE4_COMBO1
|
||||||
|
EXAMINE4_COMBO2
|
||||||
|
EXAMINE5_COMBO1
|
||||||
|
EXAMINE5_COMBO2
|
||||||
|
EXAMINE6_COMBO1
|
||||||
|
EXAMINE6_COMBO2
|
||||||
|
EXAMINE7_COMBO1
|
||||||
|
EXAMINE7_COMBO2
|
||||||
|
EXAMINE8_COMBO1
|
||||||
|
EXAMINE8_COMBO2
|
||||||
HAMMER_ITEM
|
HAMMER_ITEM
|
||||||
CROWBAR_ITEM
|
CROWBAR_ITEM
|
||||||
BURNING_TORCH_ITEM
|
BURNING_TORCH_ITEM
|
||||||
|
@ -1189,9 +1203,10 @@ The following ObjID members refer to pickups.
|
||||||
COMPASS_ITEM
|
COMPASS_ITEM
|
||||||
DIARY_ITEM
|
DIARY_ITEM
|
||||||
STOPWATCH_ITEM
|
STOPWATCH_ITEM
|
||||||
|
MEMCARD_LOAD_INV_ITEM
|
||||||
|
MEMCARD_SAVE_INV_ITEM
|
||||||
PC_LOAD_INV_ITEM
|
PC_LOAD_INV_ITEM
|
||||||
PC_SAVE_INV_ITEM
|
PC_SAVE_INV_ITEM
|
||||||
Table of constants.
|
|
||||||
@table PickupConstants
|
@table PickupConstants
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1199,8 +1214,6 @@ Table of constants.
|
||||||
|
|
||||||
The following ObjID members refer to sprites.
|
The following ObjID members refer to sprites.
|
||||||
|
|
||||||
Table of constants:
|
|
||||||
|
|
||||||
SKY_GRAPHICS
|
SKY_GRAPHICS
|
||||||
DEFAULT_SPRITES
|
DEFAULT_SPRITES
|
||||||
MISC_SPRITES
|
MISC_SPRITES
|
||||||
|
@ -1214,18 +1227,17 @@ Table of constants:
|
||||||
RUBBER_BOAT_WAVE_SPRITES
|
RUBBER_BOAT_WAVE_SPRITES
|
||||||
SKIDOO_SNOW_TRAIL_SPRITES
|
SKIDOO_SNOW_TRAIL_SPRITES
|
||||||
KAYAK_PADDLE_TRAIL_SPRITE
|
KAYAK_PADDLE_TRAIL_SPRITE
|
||||||
KAYAK_WAKE_SPRTIES
|
LASERSIGHT_GRAPHICS
|
||||||
BINOCULAR_GRAPHIC
|
CAUSTIC_TEXTURES
|
||||||
LASER_SIGHT_GRAPHIC
|
BAR_BORDER_GRAPHICS
|
||||||
CAUSTICS_TEXTURES
|
|
||||||
BAR_BORDER_GRAPHIC
|
|
||||||
HEALTH_BAR_TEXTURE
|
HEALTH_BAR_TEXTURE
|
||||||
AIR_BAR_TEXTURE
|
AIR_BAR_TEXTURE
|
||||||
DASH_BAR_TEXTURE
|
DASH_BAR_TEXTURE
|
||||||
SFX_BAR_TEXTURE
|
SFX_BAR_TEXTURE
|
||||||
SPEEDOMETER
|
CROSSHAIR_GRAPHICS
|
||||||
CUSTOM_BAR_GRAPHIC
|
SPEEDOMETER_GRAPHICS
|
||||||
CUSTOM_AMMO_GRAPHIC
|
CUSTOM_BAR_GRAPHICS
|
||||||
|
CUSTOM_AMMO_GRAPHICS
|
||||||
@table SpriteConstants
|
@table SpriteConstants
|
||||||
*/
|
*/
|
||||||
static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
|
@ -1378,6 +1390,7 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
{ "CYBORG", ID_CYBORG },
|
{ "CYBORG", ID_CYBORG },
|
||||||
{ "SNIPER", ID_SNIPER },
|
{ "SNIPER", ID_SNIPER },
|
||||||
{ "CHEF", ID_CHEF },
|
{ "CHEF", ID_CHEF },
|
||||||
|
{ "KOLD", ID_KOLD },
|
||||||
{ "WINGED_MUMMY", ID_WINGED_MUMMY },
|
{ "WINGED_MUMMY", ID_WINGED_MUMMY },
|
||||||
{ "CENTAUR_MUTANT", ID_CENTAUR_MUTANT },
|
{ "CENTAUR_MUTANT", ID_CENTAUR_MUTANT },
|
||||||
{ "DOPPELGANGER", ID_DOPPELGANGER },
|
{ "DOPPELGANGER", ID_DOPPELGANGER },
|
||||||
|
@ -1441,7 +1454,7 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
{ "IMP", ID_IMP },
|
{ "IMP", ID_IMP },
|
||||||
{ "IMP_ROCK", ID_IMP_ROCK },
|
{ "IMP_ROCK", ID_IMP_ROCK },
|
||||||
{ "GUNSHIP", ID_GUNSHIP },
|
{ "GUNSHIP", ID_GUNSHIP },
|
||||||
{ "AUTOGUN", ID_AUTO_GUN_VCI },
|
{ "AUTO_GUN_VCI", ID_AUTO_GUN_VCI },
|
||||||
{ "ROMAN_GOD1", ID_ROMAN_GOD1 },
|
{ "ROMAN_GOD1", ID_ROMAN_GOD1 },
|
||||||
{ "ROMAN_GOD2", ID_ROMAN_GOD2 },
|
{ "ROMAN_GOD2", ID_ROMAN_GOD2 },
|
||||||
{ "LAGOON_WITCH", ID_LAGOON_WITCH },
|
{ "LAGOON_WITCH", ID_LAGOON_WITCH },
|
||||||
|
@ -1450,6 +1463,7 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
{ "BOSS_EXPLOSION_RING", ID_BOSS_EXPLOSION_RING },
|
{ "BOSS_EXPLOSION_RING", ID_BOSS_EXPLOSION_RING },
|
||||||
{ "CLAW_MUTANT", ID_CLAW_MUTANT },
|
{ "CLAW_MUTANT", ID_CLAW_MUTANT },
|
||||||
{ "WASP_MUTANT", ID_WASP_MUTANT },
|
{ "WASP_MUTANT", ID_WASP_MUTANT },
|
||||||
|
{ "TWIN_AUTO_GUN", ID_TWIN_AUTO_GUN },
|
||||||
{ "SKATEBOARD", ID_SKATEBOARD },
|
{ "SKATEBOARD", ID_SKATEBOARD },
|
||||||
{ "SKATEBOARD_KID", ID_SKATEBOARD_KID },
|
{ "SKATEBOARD_KID", ID_SKATEBOARD_KID },
|
||||||
{ "WINSTON", ID_WINSTON },
|
{ "WINSTON", ID_WINSTON },
|
||||||
|
@ -1838,10 +1852,10 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
{ "SHOOT_SWITCH3", ID_SHOOT_SWITCH3 },
|
{ "SHOOT_SWITCH3", ID_SHOOT_SWITCH3 },
|
||||||
{ "SHOOT_SWITCH4", ID_SHOOT_SWITCH4 },
|
{ "SHOOT_SWITCH4", ID_SHOOT_SWITCH4 },
|
||||||
{ "AIRLOCK_SWITCH", ID_AIRLOCK_SWITCH },
|
{ "AIRLOCK_SWITCH", ID_AIRLOCK_SWITCH },
|
||||||
{ "UNDERWATER_WALL_SWITCH_1", ID_UNDERWATER_WALL_SWITCH_1 },
|
{ "UNDERWATER_WALL_SWITCH1", ID_UNDERWATER_WALL_SWITCH1 },
|
||||||
{ "UNDERWATER_WALL_SWITCH_2", ID_UNDERWATER_WALL_SWITCH_2 },
|
{ "UNDERWATER_WALL_SWITCH2", ID_UNDERWATER_WALL_SWITCH2 },
|
||||||
{ "UNDERWATER_CEILING_SWITCH_1", ID_UNDERWATER_CEILING_SWITCH_1 },
|
{ "UNDERWATER_CEILING_SWITCH1", ID_UNDERWATER_CEILING_SWITCH1 },
|
||||||
{ "UNDERWATER_CEILING_SWITCH_2", ID_UNDERWATER_CEILING_SWITCH_2 },
|
{ "UNDERWATER_CEILING_SWITCH2", ID_UNDERWATER_CEILING_SWITCH2 },
|
||||||
{ "TURN_SWITCH", ID_TURN_SWITCH },
|
{ "TURN_SWITCH", ID_TURN_SWITCH },
|
||||||
{ "COG_SWITCH", ID_COG_SWITCH },
|
{ "COG_SWITCH", ID_COG_SWITCH },
|
||||||
{ "LEVER_SWITCH", ID_LEVER_SWITCH },
|
{ "LEVER_SWITCH", ID_LEVER_SWITCH },
|
||||||
|
@ -2176,8 +2190,6 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
{ "BRIDGE_TILT4", ID_BRIDGE_TILT4 },
|
{ "BRIDGE_TILT4", ID_BRIDGE_TILT4 },
|
||||||
{ "BRIDGE_CUSTOM", ID_BRIDGE_CUSTOM },
|
{ "BRIDGE_CUSTOM", ID_BRIDGE_CUSTOM },
|
||||||
{ "HORIZON", ID_HORIZON },
|
{ "HORIZON", ID_HORIZON },
|
||||||
{ "BINOCULAR_GRAPHICS", ID_BINOCULAR_GRAPHICS },
|
|
||||||
{ "TARGET_GRAPHICS", ID_TARGET_GRAPHICS },
|
|
||||||
{ "SKY_GRAPHICS", ID_SKY_GRAPHICS },
|
{ "SKY_GRAPHICS", ID_SKY_GRAPHICS },
|
||||||
{ "DEFAULT_SPRITES", ID_DEFAULT_SPRITES },
|
{ "DEFAULT_SPRITES", ID_DEFAULT_SPRITES },
|
||||||
{ "MISC_SPRITES", ID_MISC_SPRITES },
|
{ "MISC_SPRITES", ID_MISC_SPRITES },
|
||||||
|
@ -2192,24 +2204,16 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
||||||
{ "SKIDOO_SNOW_TRAIL_SPRITES", ID_SKIDOO_SNOW_TRAIL_SPRITES },
|
{ "SKIDOO_SNOW_TRAIL_SPRITES", ID_SKIDOO_SNOW_TRAIL_SPRITES },
|
||||||
{ "KAYAK_PADDLE_TRAIL_SPRITE", ID_KAYAK_PADDLE_TRAIL_SPRITE },
|
{ "KAYAK_PADDLE_TRAIL_SPRITE", ID_KAYAK_PADDLE_TRAIL_SPRITE },
|
||||||
{ "KAYAK_WAKE_SPRTIES", ID_KAYAK_WAKE_SPRTIES },
|
{ "KAYAK_WAKE_SPRTIES", ID_KAYAK_WAKE_SPRTIES },
|
||||||
{ "BINOCULAR_GRAPHIC", ID_BINOCULAR_GRAPHIC },
|
{ "BINOCULAR_GRAPHICS", ID_BINOCULAR_GRAPHICS },
|
||||||
{ "LASER_SIGHT_GRAPHIC", ID_LASER_SIGHT_GRAPHIC },
|
{ "LASERSIGHT_GRAPHICS", ID_LASERSIGHT_GRAPHICS },
|
||||||
{ "CAUSTICS_TEXTURES", ID_CAUSTICS_TEXTURES },
|
{ "CAUSTIC_TEXTURES", ID_CAUSTIC_TEXTURES },
|
||||||
{ "BAR_BORDER_GRAPHIC", ID_BAR_BORDER_GRAPHIC },
|
{ "BAR_BORDER_GRAPHICS", ID_BAR_BORDER_GRAPHICS },
|
||||||
{ "HEALTH_BAR_TEXTURE", ID_HEALTH_BAR_TEXTURE },
|
{ "HEALTH_BAR_TEXTURE", ID_HEALTH_BAR_TEXTURE },
|
||||||
{ "AIR_BAR_TEXTURE", ID_AIR_BAR_TEXTURE },
|
{ "AIR_BAR_TEXTURE", ID_AIR_BAR_TEXTURE },
|
||||||
{ "DASH_BAR_TEXTURE", ID_DASH_BAR_TEXTURE },
|
{ "DASH_BAR_TEXTURE", ID_DASH_BAR_TEXTURE },
|
||||||
{ "SFX_BAR_TEXTURE", ID_SFX_BAR_TEXTURE },
|
{ "SFX_BAR_TEXTURE", ID_SFX_BAR_TEXTURE },
|
||||||
{ "CROSSHAIR", ID_CROSSHAIR },
|
{ "CROSSHAIR_GRAPHICS", ID_CROSSHAIR_GRAPHICS },
|
||||||
{ "SPEEDOMETER", ID_SPEEDOMETER },
|
{ "SPEEDOMETER_GRAPHICS", ID_SPEEDOMETER_GRAPHICS },
|
||||||
{ "CUSTOM_BAR_GRAPHIC", ID_CUSTOM_BAR_GRAPHIC },
|
{ "CUSTOM_BAR_GRAPHICS", ID_CUSTOM_BAR_GRAPHICS },
|
||||||
{ "CUSTOM_AMMO_GRAPHIC",ID_CUSTOM_AMMO_GRAPHIC },
|
{ "CUSTOM_AMMO_GRAPHICS", ID_CUSTOM_AMMO_GRAPHICS }
|
||||||
{ "PANEL_BORDER", ID_PANEL_BORDER },
|
|
||||||
{ "PANEL_MIDDLE", ID_PANEL_MIDDLE },
|
|
||||||
{ "PANEL_CORNER", ID_PANEL_CORNER },
|
|
||||||
{ "PANEL_DIAGONAL", ID_PANEL_DIAGONAL },
|
|
||||||
{ "PANEL_STRIP", ID_PANEL_STRIP },
|
|
||||||
{ "PANEL_HALF_BORDER1", ID_PANEL_HALF_BORDER1 },
|
|
||||||
{ "PANEL_HALF_BORDER2", ID_PANEL_HALF_BORDER2 },
|
|
||||||
{ "PANEL_MIDDLE_CORNER", ID_PANEL_MIDDLE_CORNER }
|
|
||||||
};
|
};
|
||||||
|
|
61
TombEngine/Specific/savegame/schema/generate_code.ps1
Normal file
61
TombEngine/Specific/savegame/schema/generate_code.ps1
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# Paths to the .fbs and corresponding generated .h files.
|
||||||
|
$fbsFiles = @(
|
||||||
|
@{ fbs = "$PSScriptRoot/ten_itemdata.fbs"; h = "$PSScriptRoot/../flatbuffers/ten_itemdata_generated.h" },
|
||||||
|
@{ fbs = "$PSScriptRoot/ten_savegame.fbs"; h = "$PSScriptRoot/../flatbuffers/ten_savegame_generated.h" })
|
||||||
|
|
||||||
|
# Function to check if the .fbs file is newer than the .h file.
|
||||||
|
function IsFbsNewerThanH ($fbs, $h)
|
||||||
|
{
|
||||||
|
if (Test-Path $h)
|
||||||
|
{
|
||||||
|
$fbsLastWrite = (Get-Item $fbs).LastWriteTime
|
||||||
|
$hLastWrite = (Get-Item $h).LastWriteTime
|
||||||
|
return $fbsLastWrite -gt $hLastWrite
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# If the .h file does not exist, treat the .fbs as newer.
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if any .fbs file is newer than its corresponding .h file.
|
||||||
|
$shouldGenerate = $false
|
||||||
|
|
||||||
|
foreach ($file in $fbsFiles)
|
||||||
|
{
|
||||||
|
if (IsFbsNewerThanH $file.fbs $file.h)
|
||||||
|
{
|
||||||
|
$shouldGenerate = $true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If any .fbs file is newer, run the generation process.
|
||||||
|
if ($shouldGenerate)
|
||||||
|
{
|
||||||
|
Write-Host "Generating savegame code from flatbuffer schema..."
|
||||||
|
|
||||||
|
# Run flatc commands.
|
||||||
|
& "$PSScriptRoot\flatc.exe" --cpp --strict-json --unknown-json --gen-object-api --force-empty --force-empty-vectors --cpp-std c++17 --scoped-enums $fbsFiles[0].fbs
|
||||||
|
& "$PSScriptRoot\flatc.exe" --cpp --strict-json --unknown-json --gen-object-api --force-empty --force-empty-vectors --cpp-std c++17 --scoped-enums $fbsFiles[1].fbs
|
||||||
|
|
||||||
|
# Move generated header files.
|
||||||
|
Move-Item -Force "ten_itemdata_generated.h" $fbsFiles[0].h
|
||||||
|
Move-Item -Force "ten_savegame_generated.h" $fbsFiles[1].h
|
||||||
|
|
||||||
|
# Check for errors and output result.
|
||||||
|
if ($LASTEXITCODE -eq 0)
|
||||||
|
{
|
||||||
|
Write-Host "Savegame code generation completed successfully."
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Host "Error occurred during savegame code generation."
|
||||||
|
exit $LASTEXITCODE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Host "Savegame schema files are unchanged. Skipping code generation."
|
||||||
|
}
|
|
@ -139,32 +139,8 @@
|
||||||
</Command>
|
</Command>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>SETLOCAL EnableDelayedExpansion
|
<Command>powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
|
||||||
|
powershell -ExecutionPolicy Bypass -File "$(ProjectDir)Specific\savegame\schema\generate_code.ps1"
|
||||||
SET SchemaDir=$(ProjectDir)Specific\savegame\schema
|
|
||||||
SET TimestampFile=$(TargetDir)flatbuffers.timestamp
|
|
||||||
|
|
||||||
FOR %%F IN ("%SchemaDir%\ten_itemdata.fbs" "%SchemaDir%\ten_savegame.fbs") DO (
|
|
||||||
SET "CurrentTimestamp=!CurrentTimestamp! %%~tF"
|
|
||||||
)
|
|
||||||
|
|
||||||
IF EXIST "%TimestampFile%" (
|
|
||||||
SET /P LastTimestamp=<"%TimestampFile%"
|
|
||||||
)
|
|
||||||
|
|
||||||
SET CurrentTimestamp=%CurrentTimestamp: =%
|
|
||||||
SET LastTimestamp=%LastTimestamp: =%
|
|
||||||
|
|
||||||
IF "%CurrentTimestamp%" == "%LastTimestamp%" (
|
|
||||||
ECHO Skipping gen.bat, schema files are unchanged
|
|
||||||
) ELSE (
|
|
||||||
ECHO Generating savegame code from flatbuffer schema...
|
|
||||||
CD "%SchemaDir%"
|
|
||||||
CALL gen.bat
|
|
||||||
ECHO !CurrentTimestamp! > "%TimestampFile%"
|
|
||||||
)
|
|
||||||
|
|
||||||
ENDLOCAL
|
|
||||||
|
|
||||||
CD "$(ProjectDir)..\Documentation\"
|
CD "$(ProjectDir)..\Documentation\"
|
||||||
CALL compile.bat .
|
CALL compile.bat .
|
||||||
|
@ -228,32 +204,8 @@ if not exist "%ScriptsDir%\Strings.lua" xcopy /Y "$(SolutionDir)Scripts\Strings.
|
||||||
</Command>
|
</Command>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>SETLOCAL EnableDelayedExpansion
|
<Command>powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
|
||||||
|
powershell -ExecutionPolicy Bypass -File "$(ProjectDir)Specific\savegame\schema\generate_code.ps1"
|
||||||
SET SchemaDir=$(ProjectDir)Specific\savegame\schema
|
|
||||||
SET TimestampFile=$(TargetDir)flatbuffers.timestamp
|
|
||||||
|
|
||||||
FOR %%F IN ("%SchemaDir%\ten_itemdata.fbs" "%SchemaDir%\ten_savegame.fbs") DO (
|
|
||||||
SET "CurrentTimestamp=!CurrentTimestamp! %%~tF"
|
|
||||||
)
|
|
||||||
|
|
||||||
IF EXIST "%TimestampFile%" (
|
|
||||||
SET /P LastTimestamp=<"%TimestampFile%"
|
|
||||||
)
|
|
||||||
|
|
||||||
SET CurrentTimestamp=%CurrentTimestamp: =%
|
|
||||||
SET LastTimestamp=%LastTimestamp: =%
|
|
||||||
|
|
||||||
IF "%CurrentTimestamp%" == "%LastTimestamp%" (
|
|
||||||
ECHO Skipping gen.bat, schema files are unchanged
|
|
||||||
) ELSE (
|
|
||||||
ECHO Generating savegame code from flatbuffer schema...
|
|
||||||
CD "%SchemaDir%"
|
|
||||||
CALL gen.bat
|
|
||||||
ECHO !CurrentTimestamp! > "%TimestampFile%"
|
|
||||||
)
|
|
||||||
|
|
||||||
ENDLOCAL
|
|
||||||
|
|
||||||
CD "$(ProjectDir)..\Documentation\"
|
CD "$(ProjectDir)..\Documentation\"
|
||||||
CALL compile.bat .
|
CALL compile.bat .
|
||||||
|
@ -330,7 +282,9 @@ del "$(TargetDir)*.exp" /q
|
||||||
del "$(TargetDir)OIS_d.dll" /q</Command>
|
del "$(TargetDir)OIS_d.dll" /q</Command>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>CD "$(ProjectDir)..\Documentation\"
|
<Command>powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
|
||||||
|
|
||||||
|
CD "$(ProjectDir)..\Documentation\"
|
||||||
CALL compile.bat .
|
CALL compile.bat .
|
||||||
|
|
||||||
CD "$(ProjectDir)Specific\savegame\schema\"
|
CD "$(ProjectDir)Specific\savegame\schema\"
|
||||||
|
@ -409,7 +363,9 @@ del "$(TargetDir)*.exp" /q
|
||||||
del "$(TargetDir)OIS_d.dll" /q</Command>
|
del "$(TargetDir)OIS_d.dll" /q</Command>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>CD "$(ProjectDir)..\Documentation\"
|
<Command>powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
|
||||||
|
|
||||||
|
CD "$(ProjectDir)..\Documentation\"
|
||||||
CALL compile.bat .
|
CALL compile.bat .
|
||||||
|
|
||||||
CD "$(ProjectDir)Specific\savegame\schema\"
|
CD "$(ProjectDir)Specific\savegame\schema\"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue